源碼
在計算機中,數(shù)據(jù)以二進制的形式存放输钩。所謂二進制豺型,即0與1,逢2進1买乃。同十進制的逢10進1一個道理姻氨。
以byte類型為例:15的二進制存放形式為
0 000 1111。表示1*2^3+1*2^2+1*2^1+1*2^0=15剪验。其中最高位為符號位肴焊,正數(shù)符號位為0,負數(shù)符號位為1功戚。byte類型所能表示的范圍即-2^7~2^7-1抖韩,即-128~127。
采用這種編碼方式疫铜,與計算機而言茂浮,進行基本的算術(shù)運算都很困難。如以1+(-1)=00000001+1000 0001=1000 0010=-2壳咕。為了解決這一問題席揽,反碼誕生。
反碼
正數(shù)的反碼是它的源碼谓厘,負數(shù)的反碼是在源碼的基礎(chǔ)上除符號位外幌羞,其余每位按位取反。例如以-15表示:-15=10001111_源碼=11110000_反碼竟稳。這樣一來:1+ -1=00000001+11111110=11111111_反碼=10000000_源碼=0属桦。這樣一來,一個新的問題誕生了:0的表示方式有兩種00000000與10000000他爸。為了解決這一問題聂宾,補碼誕生。
補碼
正數(shù)的補碼是它的源碼诊笤,負數(shù)的補碼是在其反碼的基礎(chǔ)上加1得到系谐。如此一來:1+ -1=00000001+11111111_補碼=00000000_補碼=00000000_源碼。這一讨跟,0的編碼方式就只有這一種纪他,故表示范圍為-128~127。
這里晾匠,需要注意的是將補碼轉(zhuǎn)換為源碼的過程為:按位取反茶袒,再加1。
未完待續(xù)