1、取出第 k 位数
作用:取出十进制数转换为二进制后所对应位置的数字
实现:
n >> k & 1
举例:
2、取出最右边的 1
作用:可取出十进制数转换为二进制数后,该二进制数最后边的 1
实现:
n & -n
举例:
如果输入的是 10,其二进制数为 1010,则其最右边的 1 为 10,十进制为 2。
原理:
-n 的二进制为 n 的二进制取反后加 1 ,因此当 n 与 -n 进行与运算后可以返回最右边的 1
作用:取出十进制数转换为二进制后所对应位置的数字
实现:
n >> k & 1
举例:
作用:可取出十进制数转换为二进制数后,该二进制数最后边的 1
实现:
n & -n
举例:
如果输入的是 10,其二进制数为 1010,则其最右边的 1 为 10,十进制为 2。
原理:
-n 的二进制为 n 的二进制取反后加 1 ,因此当 n 与 -n 进行与运算后可以返回最右边的 1