二進位制 原碼 補碼 反碼 符號位 正負數 資料型別
阿新 • • 發佈:2018-11-22
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;
在計算機運算的時候,都是以補碼的方式來運算的(符號為也運算);