与(&):左右两边均为真,整体为真,其余为假
左侧 | 逻辑运算符 | 右侧 | 结果 |
---|---|---|---|
0 | & | 0 | 0 |
0 | & | 1 | 0 |
1 | & | 0 | 0 |
1 | & | 1 | 1 |
与非(&^):右边先取反,然后相与
左侧 | 逻辑运算符 | 右侧 | 结果 |
---|---|---|---|
0 | &^ | 0 | 0 |
0 | &^ | 1 | 0 |
1 | &^ | 0 | 1 |
1 | &^ | 1 | 0 |
或(|):有真为真,无真为假
左侧 | 逻辑运算符 | 右侧 | 结果 |
---|---|---|---|
0 | | | 0 | 0 |
0 | | | 1 | 1 |
1 | | | 0 | 1 |
1 | | | 1 | 1 |
异或(^):相同为假,不同为真
左侧 | 逻辑运算符 | 右侧 | 结果 |
---|---|---|---|
0 | ^ | 0 | 0 |
0 | ^ | 1 | 1 |
1 | ^ | 0 | 1 |
1 | ^ | 1 | 0 |
非(~):相同为假,不同为真
值 | ~运算 |
---|---|
0 | 1 |
1 | 0 |
//将整形转换成二进制数并输出为字符串
func convertToBin(num int) string {
s := ""
if num == 0 {
return "0"
}
// num /= 2 每次循环的时候 都将num除以2 再把结果赋值给 num
for ; num > 0; num /= 2 {
lsb := num % 2
// strconv.Itoa() 将数字强制性转化为字符串
s = strconv.Itoa(lsb) + s
}
return s
}