以一个16位数(写成16进制数)移4位为例,说明各种移位运算(除RRX外)的效果?C为0或1执行RRX的2种结果?
时间: 2023-02-24 07:52:46 浏览: 1090
C语言的移位操作
在一个16位数中移位运算包括左移(LSL)、右移(LSR)、带符号右移(ASR)。
左移(LSL):将16位数向左移4位,低位会补0,高位的数会舍弃。
右移(LSR):将16位数向右移4位,高位会补0,低位的数会舍弃。
带符号右移(ASR):将16位数向右移4位,如果原数为正数,高位会补0;如果原数为负数,高位会补1。
RRX(Rotate Right with Extend):将16位数右移1位,右移位上的数会移动到最高位,C(carry)为0或1决定低位补0还是补1。
当C=0时,低位补0。
当C=1时,低位补1。
阅读全文