首先是 按位与 &
对应位数都是1时结果就是1 否则是0
例如 5 & 3 ---> 0101 & 0011 然后给它按位与 就是 0001;
按位或 |
对应位数有一个是1 结果就是1 否则就是0;
例如 5|3 ---> 0101 | 0011 然后按位或 就是 0111;
按位异或 ^
对应位数不同时结果为1 否则就是0; 两个相同的数字按位异或 一定是0
例如 : 5^ 3 --->> 0101 ^ 0011 对应位数有不同的就是1 结果就是 0110
非 ~
所有位取反
例如 : ~5 --> ~ 0101 结果就是 1010
左移 <<
所有的位向左移动 然后右侧给它补0
例如 : 5<<1 5左移一位 就是 在0101 的后边补上俩0 实际就是数字变大
右移 >>
左移相反就是
重要用法:
快速乘除二的幂次
x<<n = x 乘以 (2的n次方)
x>>n = x 除以 (2的n次方)
交换变量
交换a和b a ^= b ; b^= a; a^= b;
奇数偶数判断
x &1 结果是1 则是奇数 结果是0 则是偶数