java中整型資料儲存方式(原碼,反碼,補碼)
阿新 • • 發佈:2019-01-07
轉自: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。這表明負數的補碼是正數原碼的相反數。採用補碼進行計算,簡化了減法運算,把減法轉化成了加法運算。
規律:負數補碼的補碼等於原碼。