
特立独行的兔子为您分享以下优质知识
二进制右移操作是将二进制数的所有位向右移动指定的位数,具体规则如下:
一、带符号右移(算术右移)
对于有符号数,右移时左侧空出的位用符号位(最高位)填充。符号位为0表示正数,为1表示负数。
示例说明
以8位二进制数 `00000101`(十进制5)为例,右移1位后变为 `00000010`(十进制2)。若原数为负数(如 `10000011`,十进制-5),右移1位后变为 `11111101`(十进制-3)。
二、无符号右移
直接丢弃左侧位
无符号数右移时,左侧空出的位直接丢弃,右侧用0填充。
示例说明
以8位二进制数 `00000101`(十进制5)为例,右移1位后变为 `00000010`(十进制2)。若原数为 `11111011`(十进制-5,无符号表示为 `4294967191`),右移1位后变为 `00111111`(十进制255)。
三、移位操作符示例
左移操作符(`>
2` 结果为 `00000010`(十进制2)。
四、应用场景
乘除法优化
左移n位相当于乘以2的n次方,右移n位相当于除以2的n次方。例如 `c = a