1. 程式人生 > >java中整型資料儲存方式(原碼,反碼,補碼)

java中整型資料儲存方式(原碼,反碼,補碼)

轉自:https://blog.csdn.net/yuling112358/article/details/7838916

java中整型資料儲存時是以補碼的方式進行的。

1.何為原碼,反碼,補碼?

首先java中的整型數值都是有符號的,規定資料的二進位制形式第一位為符號位。0為正,1為負。則十進位制3的原碼為:0000000000000000  00000000  00000011,十進位制-3的原碼為: 1000000000000000 00000000  00000011 。

反碼是原碼符號位不變,其它位按位取反。即十進位制3的反碼為: 01111111 1111111111111111 111111100  ;十進位制-3的反碼為:1111111111111111   11111111  11111100。

補碼,我們規定正數的補碼與原碼相同,負數的補碼是反碼加1。即十進位制3的補碼為:00000000 00000000  00000000  00000011  ;十進位制-3的補碼為:11111111  11111111  11111111   11111101。

2.二進位制的資料已經可以運算,為什麼還要用補碼?

這是為了方便計算。有沒有發現,-3的補碼與3的原碼之和剛好為0。這表明負數的補碼是正數原碼的相反數。採用補碼進行計算,簡化了減法運算,把減法轉化成了加法運算。

規律:負數補碼的補碼等於原碼。