負數的原碼和反碼,補碼


 正數的原碼,補碼,反碼 相同,  正數用原碼表示,負數用補碼表示,負數用如果也用原碼表示,表示范圍就只有255個數  -128無法表示.

數據的取值范圍

byte類型的取值范圍:有符號的[-128,127] 無符號的[0,255] 

對於有符號的數據類型來說:最高位為符號位 0 為正數,1為負數

  例如:5 表示為 0000 0101   

     -5表示為( 原碼):1000 0101 ===>  反碼 :1111 1010  ===>  補碼:1111 1011

-128 的原碼,反碼,補碼:

  -128 補碼1000 0000 (1111 1111(反碼) + 1 = 1000 0000這里實際上真正相加的是1111 1111后面的7位,第1位是符號位始終不會變,所以,當進到第8位的時候,溢出了,會被舍棄)

 

數據類型強制轉換

  int a = 256 ; //1 0000 0000 

  byte b = a ; //去高位 得到 0000 0000

  //b=0   

  // a=255時   1111 1111  對於byte來說是負數這是一個負數的補碼  ===> 原碼 : 1000 0001   b= -1 

  在java中大數據強轉位小范圍數據類型:去高位

  浮點型轉為整型:去小數位,再去高位

 


免責聲明!

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



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