x=x&(x-1);
这行代码什么意思,&的这个用法是什么意思??
这是“位运算”中的一种很经典的用法,“&”是“位于”的意思。它具体点的意思就是把x的二进制表示数最右边的一个1变成0 例如:
e1:
x = 01001000
x-1 = 01000111
x&(x-1)= 01000000
e2:
x = 01001001
x-1 = 01001000
x&(x-1)= 01001000
此外我还看到过有用这个表达式写成if(x=x&(x-1))来判断x是否为2的n次幂。 具体的你可以参考有关“位运算”的书籍。全部
这是“位运算”中的一种很经典的用法,“&”是“位于”的意思。它具体点的意思就是把x的二进制表示数最右边的一个1变成0 例如:
e1:
x = 01001000
x-1 = 01000111
x&(x-1)= 01000000
e2:
x = 01001001
x-1 = 01001000
x&(x-1)= 01001000
此外我还看到过有用这个表达式写成if(x=x&(x-1))来判断x是否为2的n次幂。
具体的你可以参考有关“位运算”的书籍。收起