逻辑右移和算术右移有什么区别?
答案 0 :(得分:6)
算术右移重复符号位。逻辑移位忽略符号位,最左边的位变为0
。
示例强>
8位右移以保持简单。
示例1
11100101
原始位
11110010
算术右移
01110010
逻辑右移
示例2
00011101
原始位
00001110
算术右移
00001110
逻辑右移
请注意,当符号位为0
时,两个操作都相同。
答案 1 :(得分:3)
LSR将位向右移位并用0填充MSb.ASR将位向右移位并用移位前的任何内容填充MSb,这保留了有符号数的“除以2”机制。 / p>
答案 2 :(得分:1)
一个(算术移位)保留符号(通过填充空出的最左位位置与之前存在的重复);另一个没有(逻辑移位),而是总是用零填充。