二進(jìn)制數(shù)在內(nèi)存中以補(bǔ)的形式存儲(chǔ)。
原碼表示法在數(shù)值前面增加了一位符號(hào)位(即最高位為符號(hào)位):正數(shù)該位為0,負(fù)數(shù)該位為1(0有兩種表示:+0和-0),其余位表示數(shù)值的大小。例如,用8位二進(jìn)制表示一個(gè)數(shù),+11的原碼為00001011,-11的原碼就是10001011。
反碼表示法規(guī)定:正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對(duì)其原碼逐位取反,但符號(hào)位除外。
補(bǔ)碼表示法規(guī)定:正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1。
(1) 原碼:在數(shù)值前直接加一符號(hào)位的表示法。
[+7]原= 0 0000111 B
[-7]原= 1 0000111 B
注意:a. 數(shù)0的原碼有兩種形式:[+0]原=0 0000000 B[-0]原=1 0000000 B
b. 8位二進(jìn)制原碼的表示范圍:-127~+127
(2)反碼:正數(shù):正數(shù)的反碼與原碼相同。
負(fù)數(shù):負(fù)數(shù)的反碼,符號(hào)位為“1”,數(shù)值部分按位取反。
[+7]反= 0 0000111 B[-7]反= 1 1111000 B
注意:a. 數(shù)0的反碼也有兩種形式,即[+0]反=0 0000000 B[-0]反=1 1111111 B
b. 8位二進(jìn)制反碼的表示范圍:-127~+127
(3)補(bǔ)碼正數(shù):正數(shù)的補(bǔ)碼和原碼相同。
負(fù)數(shù):負(fù)數(shù)的補(bǔ)碼則是符號(hào)位為“1”。并且,這個(gè)“1”既是符號(hào)位,也是數(shù)值位。
數(shù)值部分按位取反后再在末位(最低位)加1。也就是“反碼+1”。