位运算符

按位与 &
按位或 |
按位异或 ^
按位取反~
首先需要学会求一个数字的二进制。
比如: 123
十进制: 123 -》1 * 10 ^ 2 + 2 * 10 ^ 1 + 3 * 10 ^ 0
二进制:由0 和 1 组成,我们可以类比十进制
如果求10的二进制 10 = 8 + 2 只算8位
10 -》0000 1010 -》 1* 2^3 + 1* 2*1
位运算符
按照上面的方法,可以算出123的二进制为0111 1011
位运算符

二进制转八进制
这里以13为例,13的二进制为 0000 1101,三个数一组进行组合 ,不够的位置补0。
将13的二进制进行分组 000 001 101,因此13的八进制为 0015。

1、按位与&
如果两个二进制位都为1,则结果为1,否则结果为0
11 & 13
11的二进制 0000 1011
13的二进制 0000 1101
位运算符
结果为 0000 1101
2、按位或|
如果两个二进制位都为0,则结果为0,否则结果为1。
11 | 13
位运算符
结果为 0000 1111
3、按位异或 ^
如果两个数字的二进制位相同,则结果为0,相异结果为1.
11 ^ 13
位运算符
结果为 0000 0110
4、按位取反~
如果该位为0,则转为1。如果该位为1,则转为0.
~11
位运算符
结果为 1111 0100