我想确保我100%理解了这个概念,如果没有得到澄清。
在asm程序中,如果执行SHR 00110000b
,则最终会得到00011000b
。但是,如果要在SHR
上执行11111111b
,您将得到错误的答案,应改用SAR
?这是因为数字已签名?
如果执行
SHR
00110000b,则结果为00011000b
如果您向右移一位,是的。您可以指定移动量,因此它不固定为1。
但是,如果您要在11111111b上执行
SHR
,您将得到错误的答案
如果您将11111111b进行逻辑右移一位,则会得到01111111b。您是否认为这是不正确的,完全取决于您要实现的目标。如果要保留符号,则应使用SAR
。