1. 程式人生 > >二進位制 原碼 補碼 反碼 符號位 正負數 資料型別

二進位制 原碼 補碼 反碼 符號位 正負數 資料型別

 

1.例如: 對一個二進位制數 1100 1111 1100 0111

 

如果是有符號的轉換成十進位制為 -12345, 而如果是無符號的為 53191.

問題是, 怎麼判斷1100 1111 1100 0111是否帶符號呢?

 

不能判斷 資料本無型,原本在人心.

你想把它當做有符號就有符號,你想把它當做無符號就是無符號.它本身並沒有型別區別.

 

2.對於 _ _ _ _  _ _ _ _ 八個bit表示的數

你認為它是無符號的,那麼它可以表示0~255共計256個數字

你認為它是有符號的,那麼它只能表示-128~127共計256個數字

 

 

 

3.計算機中儲存的都是二進位制  

bit(位):b,也稱為位元(bit),每個二進位制數字0或1就是一個位(bit).     8b(bit)=1B(byte 位元組)

在Java中所有的資料型別都是有符號型別。其他語言有無符號位的型別

 

int資料型別佔4個byte(位元組) 最高位是符號位

00000000 00000000 00000000 00000000    -2^31~2^31

 

正數的原碼、反碼、補碼都一樣

負數的反碼 =  它的原碼符號位不變,其他位取反(0 ->1 ; 1->0 );

負數的補碼 = 它的反碼 +1;

在計算機運算的時候,都是以補碼的方式來運算的(符號為也運算);