1. 程式人生 > >java基礎:原碼反碼補碼

java基礎:原碼反碼補碼

注意:計算機的世界只有補碼,沒有原碼和反碼.

一.原碼:

正數的原碼是本身: 10是 0000 1010 

負數的原碼是本身.最高位用1代表符號 -10是 1000 1010

二.反碼

正數的反碼是本身:0000 1010

負數的反碼是1 和0 對換.除了最高位. 1111 0101

三.補碼

正數的補碼是本身:0000 1010

負數的補碼是反碼+1   1111 0110

 也就是說:

10在計算機裡儲存的是 0000 1010

-10在計算機裡儲存的是 1111 0110

為什麼要使用補碼還不使用原碼呢?因為使用原碼計算不正確.

比如:10 加上 -10 = 0 

0000 1010 

1000 1010

----------------相加

1001 0100  = 這玩意明顯不是0

那麼使用補碼來看.

  0000 1010 

  1111 0110

---------------------

1 0000 0000 由於byte只有8位所以捨棄了外邊的那個1 最終結果= 0