int 32位
int 溢出相当于 mod2^31
unsigned int mod2^32
unsigned long long mod 2^64
- ~+1是x补码
- 经验值:无穷大用0x3f3f3f3f表示 (*2不溢出)
- 1 << n = 2^n
(1 -> 10 -> 100) - n >> x = n/2^x
- 求n的第K位数字:n>>k&1
返回n的最后一位1:lowbit(n)=n&-n
lowbit (x) :返回x的最后一位1
lowbit ()的实现 x&(~x+1)
x&-x = x&(~x+1)
1 << 2 == 100(2进制), 其中包含了00,01,10,11这三种情况