- 问题:
怎么把一个数N的二进制类型下最右边的1提取出来?
如N的二进制原码为:…001010110000
需要得到的结果为 :… 000000010000 - 位运算
N&((~N)+1) 可以实现
运算 | 二进制结果 |
---|---|
N | 001010110000 |
~N | 110101001111 |
(~N)+1 | 110101010000 |
N&((~N)+1) | 000000010000 |
- 注:位运算详解请点击 位运算
运算 | 二进制结果 |
---|---|
N | 001010110000 |
~N | 110101001111 |
(~N)+1 | 110101010000 |
N&((~N)+1) | 000000010000 |