位运算
二进制在运算中的说明
二进制是逢2进位的进位制,0、1是基本算符
在计算机内部,运行各种运算时,都是以二进制的方式来运行。
原码、反码、补码
对于有符号的而言:
1)二进制的最高位是符号位:0表示正数,1表示负数
2)正数的原码,反码,补码都一样
3)负数的反码=它的原码符号位不变,其他位取反(0–>1,1–>0)
4) 负数的补码=它的反码+1
5) 0的反码、补码都是0
6) 在计算机运算的时候,都是以补码的方式来运算的。
Golang中的三个位运算
按位与& : 两位全为1,结果为1,否则为0
按位或| : 两位有一个为1,结果为1,否则为0
按位异或^ : 两位一个为0,一个为1,结果为1,否则为0
Golang中的两个移位运算符
>>
、<<
右移和左移,运算规则:
右移运算符 >>
: 低位溢出,符号位不变,并用符号位补溢出的高位
左移运算符<<
: 符号位不变,低位补0