算术移位与逻辑移位
书上说这两种移位是不同的,但是不同点体现在机器上,有些机器用算术移位,有些机器用逻辑移位
请问这是为什么呢?
逻辑移位和算术移位分别在什么情况下使用啊?
另外
比如 signed int a = -1;
a = a >> 3;
这个结果到底是 -1 , 还是-0.125 ?
原因何在?
多谢各位!
[解决办法]
10000010算术右移1位11000001
10000010逻辑右移1位01000001
[解决办法]
区别就是对符号位的处理不同
算术是保持符号位的
逻辑不考虑符号位,该怎么移就怎么移