算术运算符
关系运算符
逻辑运算符
位运算符
按位操作,按位取
| 按位& | a&b | 对应位都为1,取1; 其他都为0 |
|---|---|---|
| 按位| | a !b | 对应位有1,取1; 其他都为0 |
| 按位异或 ^ | a ^b | 两种情况: 1. 两个操作数: 不同位取1;相同取0 1. 单个操作数: 取反 |
| 位清空 &^ | a&^b | 对于b上的每个数值 - 如果为0,则取b对应位上的数值 - 如果为1,结果位取0 |
(用a中置1的位清空b上的位) |
// &^ 按位清零// 右边的操作位为 1 时,左边的位置零// 右边的操作位为 0 时,左边的位不变1 &^ 0 // 11 &^ 1 // 00 &^ 1 // 00 &^ 0 // 0const (Readable = 1 << iotaWriteableExecutable)func TestBitClear(t *testing.T) {a := 7 //0111a = a &^ Readableb = a &^ Executablet.Log(a&Readable == Readable, a&Writable == Writable, a&Executable == Executable)}
赋值运算符
| = | ||
|---|---|---|
| += | ||
| -= | ||
| *= | ||
| /= | ||
| %= | ||
| <<= | ||
| >>= | ||
| &= | ||
| |= |
