Boy*_*ema -1 binary go
为什么 -2&-1 会导致 -2?我假设 0010 和 0001 会导致 0000。当数字为正时确实如此。
fmt.Printf("%b, %b, %v\n", -2, -1, -2&-1) // shows: -10, -1, -2
https://play.golang.org/p/2G3vDwxAy2J
Eli*_*sky 6
这实际上是一个关于数字如何在计算机中表示的问题,而不是关于围棋。您会从其他语言/环境(如 C 或 Python)中获得相同的结果。
为简单起见,我们假设为 8 位。-2 是11111110二进制的(使用二进制补码,这是现代机器中表示负整数的标准方法)。-1 是11111111二进制的。其中AND是11111110,即 -2。
11111110
11111111
AND
实际上,Go 整数可能是 32 位或 64 位,但这不会改变答案。只需在上述表示的左侧添加一堆 1。结果仍然1111....1110是-2。
1111....1110
归档时间:
4 年,7 月 前
查看次数:
59 次
最近记录: