概述
1.逻辑移位
逻辑移位是对无符号数进行的,左移和右移都是补零
例如:0101
左移1位:1010
右移1位:0010
2.算术移位
算术移位是对有符号数进行的,符号位不变,对数值位进行移动
符号位都不变
真值 | 码制 | 添加代码 |
正数 | 原码,反码,补码 | 左移和右移都加0 |
负数 | 原码 | 左移和右移都加0 |
负数 | 补码 | 左移加0 |
负数 | 补码 | 右移加1 |
负数 | 反码 | 左移和右移都加1 |
例如:
正数 0,0110(+6)
左移1位:0,1100
左移2位:0,1000
右移1位:0,0011
右移2位:0,0001
负数 1,0110(-6原码)
左移1位:1,1100
左移2位:1,1000
右移1位:1,0011
右移2位:1,0001
负数 1,1010(-6补码)
左移1位:1,0100
左移2位:1,1000
右移1位:1,1101
右移2位:1,1110
负数 1,1001(-6反码)
左移1位:1,0011
左移2位:1,0111
右移1位:1,1100
右移2位:1,1110
3.对网上其他说法的说明
网上说逻辑左移和算术左移一样都是低位补零,逻辑右移高位补0,算术右移高位补和符号位一样的数字,这种说法是针对补码而言的。实际上由于计算机中所有数字都是以补码的形式存在,在设计cpu时设计的移位运算也是针对补码进行的,所以网上的说法是没错的。在考试做题时要分清是原码,补码,反码,负数对这三种机器数的算术移位操作是不同的,尽管实际设计硬件只实现了补码的算术移位。
最后
以上就是酷酷电灯胆为你收集整理的算术移位和逻辑移位1.逻辑移位2.算术移位3.对网上其他说法的说明的全部内容,希望文章能够帮你解决算术移位和逻辑移位1.逻辑移位2.算术移位3.对网上其他说法的说明所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复