逻辑左移、逻辑右移、算术左移、算术右移区别

2023-05-16

更新于20200715:
逻辑移位和算术移位不同,否则汇编指令就保留一个就行了,干嘛还保留2个呢?
因此:
逻辑移位主要用于无符号数的移位,左移和右移均是移丢一位+空位补0
算术移位主要用于有符号数的移位运算,移位操作时,无论是正数还是负数,无论是原码,反码,补码,均不能改变符号位的位置和值
算术移位分正数的原码,反码,补码的左移和右移,负数的原码,反码,补码的左移和右移
其中正数的原码,反码,补码完全一样,所以左移和右移时,符号位不变,数值的最高位或最低位移丢,空出的位补0;
负数的原码,左移:符号位不变,数值最高位移丢,最低位补0;右移:符号位不变,数值最低位移丢,最高位补0,
负数的反码,左移:符号位不变,数值最高位移丢,最低位补1;右移:符号位不变,数值最低位移丢,最高位补1,
负数的补码,左移:符号位不变,数值最高位移丢,最低位补0;右移:符号位不变,数值最低位移丢,最高位补1。

第一种观点:
逻辑左移=算术左移,右边统一填0 ,最高位移入cf

逻辑右移,左边统一添0 ,最低位移入cf

特殊:算数右移,左边添加的数和符号位有关,最低位移入cf

e.g:1010101010,其中[]是添加的位

逻辑左移一位:010101010[0]

算数左移一位:010101010[0]

逻辑右移一位:[0]101010101

算数右移一位:[1]101010101

算术右移的2种实现方式(结果是相同的):
1.符号位不变,数值位右移,最低位移入cf,最高位数值位填符号位的值(1或0);
2.符号位和数值位无差别右移,最低位移入cf,最高位填符号位的值(1或0)。

第二种观点:

算术移位时符号位(最高位)不变
左移时最高数值位移进cf,最低位填0;
右移时最低数值位移进cf,最高数值位填符号位的值(1或0);

逻辑移位时没有符号位:
左移时最高位移进cf,最低位填0;
右移时最低位移进cf,最高位填0;
例如

10101110逻辑右移一位得01010111逻辑左移一位得01011100。
若将其视为补码则算术左移一位得11011100算术右移一位得11010111。
可见两种移位结果不同。

以上属于转载别人观点,个人暂更倾向于第二种观点

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

逻辑左移、逻辑右移、算术左移、算术右移区别 的相关文章

  • win10把中文用户名改为英文用户名的两种方法

    电脑安装好win10系统后后创建了一个中文名的账户 xff0c 进入系统发现C User下的文件夹是中文名 xff0c 虽然中文名方便识别 xff0c 但是这样有一个很不好的地方 xff0c 那就是很多软件安装在个路径下 xff0c 有些软
  • [QMT]08-从本地行情数据解析历史K线信息

    用python解析QMT本地数据 获取本地行情数据 get local data field list 61 stock code 61 period 61 39 1d 39 start time 61 39 39 end time 61
  • Nginx+keepalived实现nginx高可用

    提前备好两台服务器 xff08 主 xff1a 192 168 2 34 xff0c 备 xff1a 192 168 2 24 xff09 xff0c 并安装好nginx xff0c nginx安装此文不做赘述 1 下载keepAlived
  • 提取括号中的内容

    正则能解决不嵌套的括号内容提取问题 遇到一个问题 xff0c 就是需要提取字符串中每一个中括号里的内容 xff0c 在网上搜了一下 xff0c 发现用正则表达式 可以提取中括号中的内容 xff0c 以下面文本为匹配对象 xff1a Perf
  • [AHK]将字符转换成莫尔斯电码

    这个程序可以在记事本中使用 当用户按下空格键时 xff0c 程序会获取当前选中的文本 xff0c 并将其转换为莫尔斯电码播放出来 如果用户选中的文本包含非摩尔斯电码字符 xff0c 程序会自动忽略它们 将字符转换成莫尔斯电码 这个程序可以在
  • 开放原子训练营(第二季)RT-Thread Nano学习营刘玉宽

    目录 前言 RT Thread简介 搭建开发环境 实验过程 1 LED 使用示例 2 按键使用示例 3 自动化执行的示例 4 自定义 msh 命令 5 多线程示例 6 定时器示例 7 消息队列示例 8 摩斯电码使用 实验总结 前言 4月22
  • 关于主机远程唤醒(WOL,Wake on Lan)的几种方法

    WOL 网络唤醒功能非常实用 xff0c 譬如可以用手机遥控电脑开机 xff0c 开启其他房间里的电脑或 NAS xff0c 控制办公室多台电脑批量开关机等 虽然 WOL 主要是在局域网使用 xff0c 但如果配置好公网访问 xff0c 还
  • 双拼和简拼兼容的方案

    双拼和简拼兼容的方案 http wubi sogou com bbs viewthread php tid 61 155980 作者 xff1a Thunk 在双拼状态下 xff0c 如果提供简拼输入 xff0c 往往会增加重码 xff0c
  • cmd /c和cmd /k

    cmd c和cmd k http leaning javaeye com blog 380810 java的Runtime getRuntime exec commandStr 可以调用执行cmd指令 cmd c dir 是执行完dir命令
  • 9 种流行的文件、文件夹比较工具点评 (转贴)

    1 FCU 推荐 xff1a 主页 xff1a http fcu smibe com 功能 xff1a 目录比较 xff0c 文件比较 特点 xff1a 文件比较以三个窗口显示 上部分的左侧窗口和右侧窗口为原始比较文件 xff0c 不同部分
  • 64位windows10,打不chm文件问题,终于解决了。。。

    公司新给配了一台win10笔记本 xff0c 发现打不开chm文件 xff0c 度娘给的方案都是修改文件属性解除锁定之类的 xff0c 根本解决不了问题 经过几天研究 xff0c 发现将chm文件拖放到 SysWOW64中的hh exe可以
  • 蓝牙键盘无法连接 ,win10要求输入pin码可是却不显示pin码

    解决方案 xff1a 打开 设备和打印机 xff0c 切换到在设备上输入密码就可以显示PIN码
  • Vue3-使用axios发起网络请求

    即使是小型项目也会涉及到请求后端API xff0c 除非你的网站展示的是一些不需要维护的静态数据 xff0c 第三篇文章我们来给Vue项目搞上axios 何为Axios xff1f 请看官方对Axios的描述 xff0c 传送门 官方文档
  • linux查看防火墙,开放端口

    1 查看防火墙状态 xff1a active running 即是开启状态 systemctl status firewalld 2 如果不是显示active状态 xff0c 需要打开防火墙 systemctl start firewall
  • UOS 欢迎信息

    赛题 2 操作系统配置 所处区域 CST 8 系统环境语言 English US UTF 8 键盘 English US 注意 当任务是配置TLS 请把根证书或者自签名证书添加到受信任区 控制台登陆后不管是网络登录还是本地登录 都按下方欢迎
  • Vue3-浏览器兼容性 IE篇

    在前端做适配的时候有些客户使用了比较旧的浏览器如IE8 9等 xff0c 前端技术栈中有些功能会出现异常或者无法显示页面 xff0c 记录几个常用的方法对不兼容的浏览器抛出友好异常 检测是否为IE浏览器 span class token k
  • HTTPS-自签证书macOS必须使用thisisunsafe

    HTTPS是站点部署的发展趋势 xff0c 由于HTTP的一系列安全问题 例如网络嗅探时数据报文默认是明文传输 xff0c 容易遭受MitM攻击篡改数据等等 什么是MITM 中间人攻击 xff1f 在内网环境部署站点的时候 xff0c HT
  • Linux-SMTP中继服务器搭建

    本文介绍使用Linux搭建SMTP服务器 xff0c 通过搭配DNS记录修改达到SPF认证的目的 本文参考 xff1a SMTP搭建教程 硬件要求 CPU span class token punctuation span 2C4T 主存
  • Swift5-引入SnapKit

    适用于因网络情况 xff0c 按照SnapKit官方手册引入失败或下载过慢的情况 请先核对Xcode和Swift版本 Xcode Version span class token operator span Version span cla
  • Vue3-减少应用部署打包体积的N种方式【持续更新】

    Vue3默认支持OptionsAPI和Composition API 混编的方式进行开发 xff0c 如果在新系统建设过程中完全抛弃了OptionsAPI方式 xff0c 可以使用vite定义全局变量来告诉Vue关闭对OptionsAPI的

随机推荐

  • Golang-简单-找不同

    题 xff1a 给定两个字符串 s 和 t xff0c 它们只包含小写字母 字符串 t 由字符串 s 随机重排 xff0c 然后在随机位置添加一个字母 请找出在 t 中被添加的字母 示例 1 xff1a 输入 xff1a s 61 abcd
  • Golang-简单-判断子序列

    题 xff1a 给定字符串 s 和 t xff0c 判断 s 是否为 t 的子序列 字符串的一个子序列是原始字符串删除一些 xff08 也可以不删除 xff09 字符而不改变剩余字符相对位置形成的新字符串 xff08 例如 xff0c 34
  • Android NDK开发基础

    文章目录 cmake语法基础cmake添加日志 xff1a cmake增加宏字符串比较cmake在build gradle中传递编译参数到cmake 通过javah生成native对应的c 43 43 头文件jni和java之间字符串的相互
  • iOS 使用科大讯飞技术实现语音转文字(语音听写)

    本文主要介绍的是利用科大讯飞技术实现语音转文字的功能 语音听写 首先 注册讯飞账号 xff0c 申请APPID 然后 下载科大讯飞SDK将开发工具包中lib目录下的iflyMSC framework添加到新建工程中 按下图添加 SDK 所需
  • Pycharm的汉化方法(pycharm改为中文版)

    很多开始接触python的朋友都会用到一款工具 xff1a pycharm xff0c 但默认是英文版的不知从何下手 xff0c 本文介绍两种不同的pycharm汉化方法 xff0c 将其变为中文版的界面 xff08 对于windows电脑
  • ubuntu14.04服务器版本搭建OpenStack+附上资源链接(稳成功的那种)

    ubuntu14 04服务器版本搭建OpenStack 43 附上资源链接 xff08 稳成功的那种 xff09 一 想必大家在搭建过程中 xff0c 遇见了很多的困难是吗 xff1f 没事 xff0c 今天小编就带你搭建属于你自己的Ope
  • 部署taokeeper

    环境 span class hljs title wget span https mirrors tuna tsinghua edu cn apache tomcat tomcat span class hljs number 7 span
  • 字符串排序(C语言实现)

    习题8 7 字符串排序 xff08 C语言实现 xff09 方法一 xff1a 选择排序 span class token macro property span class token directive keyword include
  • DVWA简介

    DVWA部署完成后通过默认账号密码 xff08 admin password xff09 进入欢迎界面 xff08 Home页面 xff09 xff0c 欢迎页面对DVWA平台做了简单的介绍 xff0c 如果需要对DVWA平台有一个更加深入
  • ios 导航控制器(navigationController)代码方式创建

    NavigationCOntroller 使用 BooL application UIApplication application didFinishLaunchingWithOptions NSDictionary launchOpti
  • ansible 简介和基本安装

    目录 ansible 简介和基本安装 自动化运维 运维的自动化发展历程运维工程师的职能划分自动化运维的应用场景企业实际应用场景分析 Dev开发环境测试环境发布环境生产环境 灰度环境 生产环境的一部分 常用的自动化运维工具ansible基本介
  • 使用OpenCV进行摄像机标定

    Cv照相机定标和三维重建 目录 隐藏 1 针孔相机模型和变形 2 照相机定标 2 1 ProjectPoints2 2 2 FindHomography 2 3 CalibrateCamera2 2 4 FindExtrinsicCamer
  • distributor之Interrupt Set-Enable Registers, GICD_ISENABLERn

    相对于distributor基地址偏移区间在0x100 0x17C 此寄存器就是把对应的中断使能 xff0c 使之可以被触发上报处理器 xff1b 此寄存器是写0无效的 xff0c 所以在写此寄存器时可以直接写 xff0c 不用再先读再或再
  • pip怎么安装到用户目录(不需要管理员权限),怎样安装指定python版本的包

    1 pip怎么安装到用户目录 xff08 不需要管理员权限 xff09 在用户的Home目录底下有个 pip目录 xff0c 即 pip xff0c 在这里面新建一个pip conf xff0c 里面写上 install install o
  • 时间机器测试

    这创意实在太搞 xff0c 不得不转载 xff1a 1 准备一张厚厚的 xff0c 防水的 xff0c 质量好的纸 xff0c 至少要100克的 xff0c 但表面不能太光滑 xff0c 防止墨迹脱落 2 在纸上用郑重的语气写上 xff0c
  • Android输入系统流程介

    Android输入系统的工作原理概括来说 xff0c 就是监控 dev input 下的所有设备节点 xff0c 当某个节点有数据可读时 xff0c 将数据读出并进行一系列的翻译加工 xff0c 然后在所有的窗口中寻找合适的事件接收者 xf
  • IntelliJ IDEA 恢复出厂设置

    引言 如果你不小心修改了设置 xff0c 导致出现问题且不知道解决办法 xff0c 可以尝试恢复出厂设置 IDEA 恢复出厂设置 IDEA 2021 之后 xff0c 在顶部工具栏 xff0c 选择 File Manage IDE Sett
  • Ozone调试

    SEGGER Ozone调试器使用攻略 xff01
  • Ubuntu 20.04 LTS安装opencl

    CPU AMD Ryzen threadripper 3970x 32 core processor 64 内存 220 1 GiB 图形 AMD Radeon rx 580 2048sp DiskCapacity 3 8 TB OS Na
  • 逻辑左移、逻辑右移、算术左移、算术右移区别

    更新于20200715 xff1a 逻辑移位和算术移位不同 xff0c 否则汇编指令就保留一个就行了 xff0c 干嘛还保留2个呢 xff1f 因此 xff1a 逻辑移位主要用于无符号数的移位 xff0c 左移和右移均是移丢一位 43 空位