逻辑右移和算术右移有什么区别?
问问题
1961 次
3 回答
6
算术右移复制符号位。逻辑移位忽略符号位,最左边的位变为0
。
例子
8 位右移使事情变得简单。
示例 1
11100101
原始位
11110010
算术右移
01110010
逻辑右移
示例 2
00011101
原始位
00001110
算术右移
00001110
逻辑右移
请注意,当符号位为 时,这两个操作是相同的0
。
于 2010-10-22T04:44:55.200 回答
3
LSR 将位右移并用 0 填充 MSb。ASR 将位右移并用移位前的任何内容填充 MSb,这保留了有符号数的“除以 2”机制。
于 2010-10-22T04:45:19.223 回答
1
一个(算术移位)保留符号(通过用先前存在的内容的副本填充空出的最左边的位位置);另一个没有(逻辑移位),而是总是用零填充。
于 2010-10-22T04:45:13.500 回答