7
我在代碼庫中看到^ 0。golang中的^ 0是什麼?
例子:
type stat struct {
...
min int64
...
}
newStat := stat{min: ^0}
是什麼^ 0是什麼意思?
我在代碼庫中看到^ 0。golang中的^ 0是什麼?
例子:
type stat struct {
...
min int64
...
}
newStat := stat{min: ^0}
是什麼^ 0是什麼意思?
根據the docs:
^x的按位求補爲m^X,其中M = 「所有位設置爲1」 爲
無符號x和M = -1簽署X
這意味着^0
與其他主流語言中的~0
相同。
在two's complement(大多數編程語言採用)上,零補碼的值爲-1(在簽名數據類型上)。所以這是一種寫法:
newStat := stat{min: -1}
嘿謝謝你的回覆。我是一個Go初學者,我仍然不知道這是什麼意思。什麼是〜0?什麼是按位補充?你能澄清一下嗎? 在此先感謝! – samol
按位互補是從數據類型中取出每一位並將其反轉。例如,4位二進制中的0是0000,它的逐位補碼是1111.與4位二進制中的10是1010並且其補碼是0101相同。 –
有關進一步參考,請閱讀[按位操作](http:///en.wikipedia.org/wiki/Bitwise_operation)。 – justinas