12

我在代码库中看到 ^0。

例子:

type stat struct {
  ...
  min int64
  ...
}

newStat := stat{min: ^0}

^0 是什么意思?

4

1 回答 1

28

根据文档

^x 按位补码是 m ^ x,其中 m =“所有位设置为 1”

无符号 x 和 m = -1 对于有符号 x

这意味着这^0~0其他主流语言相同。

二进制补码(大多数编程语言采用)上,零补码的值为 -1(在有符号数据类型上)。所以这是一种写法:

newStat := stat{min: -1}
于 2013-10-03T22:11:23.337 回答