1. 程式人生 > >為什麼unsigned (-1)表示無符號整數的最大值

為什麼unsigned (-1)表示無符號整數的最大值

1、整數在計算機中的表示。

在計算機中,整數採用補碼錶示。當前主流編譯器中整型在記憶體中佔用四個位元組,共32位。

2、原碼、補碼、補碼。

原碼:第一位為符號位,其餘位表示數值,如-1的原碼:1,000...0001(兩個1之間32個0)。

反碼:正數的補碼就是其原碼;負數的反碼為符號位不變,數值位按位取反。如-1的補碼為1,111...1110。

補碼:正數的補碼就是其原碼。負數的補碼為=反碼+1。因此,-1的補碼為1,111...111。

因此,unsigned(-1)=1,111...111(共32個1)。表示unsigned的最大值。