1. 程式人生 > >負數的原碼和反碼,補碼

負數的原碼和反碼,補碼

轉換 例如 整型 強制轉換 浮點 === 類型強制轉換 大數據 nbsp

正數的原碼,補碼,反碼 相同, 正數用原碼表示,負數用補碼表示,負數用如果也用原碼表示,表示範圍就只有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中大數據強轉位小範圍數據類型:去高位

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

負數的原碼和反碼,補碼