
时光倾城为您分享以下优质知识
在二进制数中,高位赋1的操作需要根据数的正负和操作类型进行区分,具体规则如下:
一、有符号数(补码表示)
若为负数,右移时需在高位补1(符号位保持不变)。例如:
- 数字 -4 的二进制补码为 `11111111111111111111111111110100`(假设8位表示)
- 右移2位后为 `10000000000000000000000000000010`(补码运算)
- 转换回原码(保留符号位)为 `10000000000000000000000000000100`,即 -2
正数右移
若为正数,右移时高位补0(逻辑右移)。例如:
- 数字 4 的二进制为 `00000000000000000100`
- 右移2位后为 `00000000000000000001`,结果为1
二、无符号数
无符号数不包含符号位,右移时高位补0(逻辑右移)。例如:
数字 4(二进制 `00000000000000000100`)右移2位后为 `00000000000000000001`,结果为1
三、其他场景
左移赋1:
若需在二进制数的最低位赋1,可使用左移操作(`n