什么是golang中的^ 0?

时间:2013-10-03 22:05:49

标签: go bitwise-operators twos-complement

我在代码库中看到^ 0。

示例:

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

newStat := stat{min: ^0}

^ 0是什么意思?

1 个答案:

答案 0 :(得分:21)

根据the docs

  

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

     

无符号x和m = -1,用于带符号x

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

two's complement(大多数编程语言采用)上,零补码的值为-1(在有符号数据类型上)。所以这是一种写作方式:

newStat := stat{min: -1}