golang 位运算符

& 与 (AND)

0110 & 1011 = 0010

| 或 (OR)

0110 | 1011 = 1111

^ 异或 (XOR)

0110 ^ 1011 = 1101

&^ 位清空 (AND NOT) -》A &^ B = A AND (NOT B)

0110 &^ 1011 = 0100

>> 右移

0100 >> 2 = 0001

<< 左移

0000 0100 << 3 = 0010 0000

^ 作一元运算符表示是按位取反

^5 = -6

5 转二进制 0000 0101
取反: 1111 1010
取反码: 1000 0101
取补码: 1000 0110

最终结果:1000 0110 = -6

^-6 = 5
-6 转二进制 1000 0110
取反码:1111 1001
取补码:1111 1010
取反:0000 0101

最终结果: 0000 0101 = 5

 

posted @ 2021-10-11 11:02  会飞的猿  阅读(144)  评论(0编辑  收藏  举报