位运算的运算符
- ~
按位取反,它是单目运算符,不分正负数,在数字(十进制)的左边。给出一个十进制数11。
11的二进制是
0000 1011 (假定它为一个字节(8位),实际上有4个字节,32位)
~11的结果为
1111 0100 (把每一位的0变1,1变0) - &
按位与,它是双目运算符,在两个数的中间。给出两个十进制数11,13。
0000 1011(11的二进制,同上为1字节)
0000 1101(13的二进制,同上为1字节)
11&13的计算为
0000 1001 (相同位上都为1,才为1,其他情况为0) - |
按位或,它是双目运算符,在两个数的中间。给出两个十进制数11,13。
0000 1011(11的二进制,同上为1字节)
0000 1101(13的二进制,同上为1字节)
11|13的计算为
0000 1111 (相同位上只要有1,就为1,否则为0) - ^
按位异或,它是双目运算符,在两个数的中间。给出两个十进制数11,13。
0000 1011(11的二进制,同上为1字节)
0000 1101(13的二进制,同上为1字节)
11^13的计算为
0000 0110(相同位上如果不一样