我正在寻找有关Google Go语言的信息。在“ A Go of Go”中,他们具有以下代码:
const ( Big = 1<<100 Small = Big>>99 )
但是什么<<和>> 意味着什么呢?
<<
>>
您可以在http://tour.golang.org/#14上查看所有代码
它们是按位移位运算符。x << y表示 x ×2 y ,而x >> y表示 x ×2 -y 或等效地x÷2 y。这些运算符通常用于操作值的二进制表示形式,就像十进制的10的幂一样,乘或除以2的幂分别具有使数字“左移”或“右移”的效果:
x << y
x >> y
// Left shift: 13 * 2 == 26 // decimal 1101 * 10 == 11010 // binary (13 is 8 + 4 + 0 + 1) // Right shift (brackets denote discarded portion): 13 / 2 == 6[.5] // decimal 1101 / 10 == 110[.1] // binary
由于您是对整数进行运算,并且右移通常会产生分数值,因此有两种方法可以处理右舍入的结果如何取整。在Go中,右移是无符号值的逻辑移位,而有符号值的算术移位。逻辑移位总是四舍五入,而算术移位总是四舍五入,即-∞。