
心有灵犀为您分享以下优质知识
以下是快速判断二进制位数的方法,结合了不同场景的实用技巧:
一、通过八进制表示判断位数
每3位二进制数对应1位八进制数(例如:`1101011`对应八进制的`63`)。
计算方法
- 将二进制数从右向左每3位分组;
- 最左边的组若不足3位,用0补全;
- 统计补全后分组的数量即为二进制位数。
示例:
判断`10110101`的位数
分组后为`101`(3位)、`101`(3位)和`010`(2位),补全后为`101 101 010`,共6位。
二、使用位运算快速判断
- 将数字右移指定位数(如`n-1`位,假设最低位为第1位);
- 使用`& 1`操作判断最低位是否为1。
示例:
判断`0b10110101`的第3位(从右往左)
- `0b10110101 >
>
2` 得 `0b101101`,`0b101101 & 1` 结果为`1`,表示第3位为1。
- 将1左移目标位数(如`i`位),再与原数进行按位与运算;
- 结果不为0则表示目标位为1。
示例:
判断`0b10110101`的第3位
- `0b10000000