运算
算数运算
整型和浮点型支持 +、-、* 和 /。
整型还支持%(取余数)。
逻辑运算
go 整型,浮点型,string 支持 ==、!=、<、<=、>、>=逻辑运算,逻辑运算的结果会产生bool类型。
//string 逻辑运算 使用的是按字节逐一对比的
"ab" >"c" //false
位运算
二元运算符:
按位与 &:
1 & 1 // 1
1 & 0 // 0
0 & 0 // 0
按位或 |:
1 | 1 // 1
1 | 0 // 1
0 | 0 // 0
按位异或 ^:
1 ^ 1 // 0
1 ^ 0 // 1
0 ^ 0 // 0
位清除 &^:
a &^ b
表示把a中,ab都为1的位置为0
0110 &^ 1011 // 0100
1011 &^ 1101 // 0010
一元运算符
按位取反^:
对应位置 0变成1,1变成0。对于正的有符号数,取反会变负数,所以负的有符号数取反都等于1.
^1 // -2
^-3 // 2
位左移 <<: 左移时右侧位补0,移动一位相当于乘以2
1 << 10 // 等于 1k
1 << 20 // 等于 1m
1 << 30 // 等于 1g
位右移 >>: 右移时左侧位补0,移动一位相对于乘以2
39 >>2 // 9
512 >> 2 //128
运算符与优先级
由上至下代表优先级由高到低
优先级 运算符
8 ()(括号)
7 ^ !
6 * / % << >> & &^
5 + - | ^
4 == != < <= >= >
3 <-
2 &&
1 ||