获取二进制数的最后一位有多种方法,以下是常用且高效的实现方式:
一、位与运算(最常用)
通过 `n & 1` 可直接获取二进制数的最后一位。这是最简洁且高效的方法,适用于所有整数。
示例代码:
```c
int lastBit(int n) {
return n & 1;
}
```
二、右移运算
通过 `n >> 1` 右移一位后与 `1` 进行与运算,可逐步去除最低位,最终得到最后一位。
示例代码:
```c
int lastBit(int n) {
return (n >> 1) & 1;
}
```
三、按位与运算(位掩码)
使用掩码 `0x01`(二进制 `0000 0000 0000 0000 0000 0000 0000 0001`)与原数进行与运算,可提取最低位。
示例代码:
```c
int lastBit(int n) {
return n & 0x01;
}
```
四、其他方法
取模运算:`n % 2` 可判断最后一位是 `0` 还是 `1`,但效率较低。
位运算技巧:`n & (-n)` 可快速获取最低位的 `1`,适用于处理负数。
总结:推荐使用 `n & 1`,因为它简洁且执行效率高,适用于所有整数场景。其他方法在特定需求下(如处理负数或特定位操作)可作为补充。