一:关系运算符,和php的一致,略。
二:逻辑运算符,和已知的php一致,略。
三:进制数,已在php中学习,略。
四:Golang中不存在三元运算符。
五:源码,反码,补码。
对于有符号的而言:
①:二进制的最高位是符号,0表示正数,1表示负数。
②:正数的源码,反码,补码都一样。
1=> [补码:0000 0001,反码:0000 0001,补码:0000 0001]
③:负数的反码=原码符号位不变,其他位置取反。
-1=》[补码:1000 0001,反码:1111 1110]
④:负数的补码=反码+1
-1=》[补码:1000 0001,反码:1111 1110,补码:1111 1111]
⑤:0的反码,补码都是0
⑥:在计算机运行的过程中,是以补码的方式进行运算。
六:位运算和移位运算
①:位运算是基于数字的二进制形势下的补码进行运算
1)按位与& :两位全为1,结果为1
2)按位或| :两位有一个为1结果为,否则为0
备注:1)中,由于均为正数参考第五大点的第二小点,故补码不用转换几位源码,而负数需要转换。
3)按位异或^ :两位,一个为0,一个为1,这为1,否则为0
②:移位运算
1)<<符号位不变,低位补0
var a := 1>>2 //a等于0
2)>>符号位不变,低位溢出,并用符号位补溢出的高位
var 1 := 1<<2 //a等于4