一、取余运算符
-5 % -3 //结果:-3
11 % -4 //结果:3
23 % -5 //结果:3
可以用以下公式来确定余数的符号:
被除数=商 × 除数 + 余数
二、指数运算
math包中有两个函数可用于指数运算:
Pow函数的声明如下:
func Pow(x,y float64) float64
其中,参数为x为指数,y为指数,即x^y,此外还有Pow10函数
func Pow10(n int) float64
参数n指数,总是以10为底数
三、位运算符
位运算符仅作用与整数值,运算目标位二进制位,包括按位与( & )、按位或( | )、按位异或( ^ )、右移( << )、左移( >> )、清除标志位( &^ )、按位取反( ^ )
1.位移
将整数值二进制向左或向右移动指定的位数。
10011101 >> 3
得到结果00010011,最后的101被去掉。最左边的(最高位)用三个0填补空位
再如,将10101001向右移动两位
10101001 << 2
得到结果10100100
有符号整数再移位之后,可能会出现正值变负值,负值变正值的情况。原因是最高位是符号位。如果位移之后最高位为0,则为正值,最高位为1则为负值
2.清除标志位
清除标志位就是将特定二进制位的值变为0。其运算符为&^
例如将11011111最右边三位变成0,代码可以写成:
var k uint8 =0b_11011111
var r = k &^ 0b_00000111
3.算符优先级
数值 | 运算符 |
5 | * / % << >> & &^ |
4 | + - | ^ |
3 | == != < <= > >= |
2 | && |
1 | || |