逻辑右移和算术右移有什么区别?
发布于 2010-10-22 12:44:55
算术右移位复制符号位。逻辑移位忽略符号位,最左边的位变为0。
示例
8位右移使事情变得简单。
示例1
11100101原始位
11110010算术右移
01110010逻辑右移
示例2
00011101原始位
00001110算术右移
00001110逻辑右移
请注意,当符号位为0时,这两种操作是相同的。
发布于 2010-10-22 12:45:19
LSR将这些位向右移位,并用0填充MSb。ASR将位向右移位,并用移位前的内容填充MSb,这保留了有符号数的“除以2”机制。
发布于 2010-10-22 12:45:14
一个(算术移位)保留符号(通过用以前的副本填充腾出的最左边的位位置);另一个不保留(逻辑移位),而总是用零填充。
https://stackoverflow.com/questions/3993948
复制相似问题