“移位运算符在移位操作中,无论左移还是右移,所移出的空位一律补0”这句话是否正确?
展开全部
不完全正确。
1、移位操作在程序设计中,移位操作运算符的一种。
2、在c++中,移位运算符有双目移位运算符:<<(左移)和>>(右移)。移位运算符组成的表达式也属于算术表达式,其值为算术值。
3、首先要明白一点,这里面所有的操作都是针对存储在计算机中中二进制的操作,那么就要知道,正数在计算机中是用二进制表示的,负数在计算机中使用补码表示的。
左移位:<<,有符号的移位操作;
左移操作时将运算数的二进制码整体左移指定位数,左移之后的空位用0补充;
右移位:>>,有符号的移位操作;
右移操作是将运算数的二进制码整体右移指定位数,右移之后的空位用符号位补充,如果是正数用0补充,负数用1补充。
无符号的移位只有右移:>>>
右移之后的空位全部补0。
4、你可以用一个立即值(从 0 到 31)指定移位数量,或用包含在 0 和 31 之间的一个值的寄存器指定移位数量。
逻辑或算术左移(LSL)
MOV R1, #12
MOV R0, R1, LSL#2
R0 是 48,这些指令形成的总和是R0 = #12, LSL#2 等同于 BASIC 的 R0 = 12 << 2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询