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


整數在計算機中的表示

在計算機中,整數采用補碼表示。當前主流編譯器中整型在內存中占用四個字節,共32位。

機器數:一個數在計算機中的二進制表示形式, 叫做這個數的機器數。機器數是帶符號的,在計算機用一個數的最高位存放符號, 正數為0, 負數為1.比如,十進制中的數 +3 ,計算機字長為8位,轉換成二進制就是00000011。如果是 -3 ,就是 10000011 。那么-1,就是10000001

原碼、補碼、補碼含義

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM