文章目录
一,位运算
A = 0011 1100
B = 0000 1101
--------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与操作,按二进制位进行“与”运算。运算规则: 0&0 = 0; 0&1 = 0; 1&0 = 0; 1&1 = 1; | (A & B)将得到12,因为 0000 1100 |
| | 按位或运算符,按二进制位进行"或"运算。运算规则: 0|0 = 0; 0|1 = 1; 1|0 = 1; 1|1 = 1; | (A |B) 将得到61,即为 0011 1101 |
^ | 异或运算符,按二进制进行“异或”运算,运算规则: 0^0 = 0; 0^1 = 1; 1^0 = 1; 1^1 = 0; | (A ^ B) 将得到 49,即为 0011 0001 |
~ | 取反运算符,按二进制进行“取反”运算。运算规则: ~1 = ~2; ~0 = -1; | (~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。 |
<< | 二进制左移运算符。将一个运算对象的各二进制位全部左移若干位 (左边的二进制丢弃,右边补0) | A << 2 将得到 240,即为 1111 0000 |
>> | 二进制右移运算符。将一个运算对象的各二进制位全部右移若干位 正数左补0,负数左补1,右边丢弃 | A >> 2 将得到 15,即为 0000 1111 |
二进制数字,
左移一位,代表乘以2;
右移一位,代表除以2。
对于补码,也是一样。
负数,右移一位,也代表除以2,左边补上一,不影响正负数。
负数,左移一位,也代表乘以2。在右边补上零,代表乘以2之后就是偶数。