正數的補碼是自己本身
負數的補碼是,先取反碼(首尾不反),然后+1
2. 在Go語言中
^0表示對0取反
我們假如是4位代表一個數字的話,最高位是符號位
0在計算機中用補碼的形式存在是 : 0000
取反得到 :1111 (是-1在計算機中以補碼的形式存在,所以^0 就是 -1)
所以 ^1 就是 1110 就是 -2
3. Go語言的最大值
a. 如果是一個無符號的數字
那么最大值就是 1111
那么就是 ^uint8(0) ,^uint16(0) ^uint32(0) ^uint64(0)
b. 如果是一個有符號的數數字
那么最大值就是 0111
那么就是 0000 取反 1111 后移一位 0111
那么就是 int8(^uint8(0) >> 1) int16(^uint16(0) >>1 )