位运算技巧 b = 1 // 等价于b/=2 if ( b 1 ) // 等价于if(b%2) b = 1 n ; // b为2的n次方 1. 取出整数n在二进制表示下的第k位 (n k) 1 2. 取出整数n在二进制表示下的第0~k - 1 位(注意表示是0到k
位运算技巧
b >>= 1 // 等价于b/=2if( b & 1 ) // 等价于if(b%2)
b=1<<n; // b为2的n次方
1.取出整数n在二进制表示下的第k位 (n>>k)&1
2.取出整数n在二进制表示下的第0~k-1位(注意表示是0到k-1位,一共k位) n&((1<<k)-1)
3.把取出整数n在二进制表示下的第k位取反 n xor(^) (1<<k)
4.对整数n在二进制表示下的第k位赋值1 n | (1<<k)
5.对整数n在二进制表示下的第k位赋值0 n & (~(1<<K))
参考链接