很多朋友對(duì)于真值原碼反碼補(bǔ)碼轉(zhuǎn)換和補(bǔ)碼轉(zhuǎn)化為真值不太懂,今天就由小編來(lái)為大家分享,希望可以幫助到大家,下面一起來(lái)看看吧!
反碼的真值計(jì)算公式
舉例說(shuō)明如下:真值X=-11111,若字長(zhǎng)8位,則:[X]原=10011111,最高位是符號(hào)位,1表示負(fù)數(shù)[X]反=11100000,將原碼除符號(hào)位之外的數(shù)值位取反得反碼[X]補(bǔ)=11100001,將反碼末位加1得補(bǔ)碼若真值是正數(shù),無(wú)須上述操作,正數(shù)的原碼反碼補(bǔ)碼符號(hào)位為0,數(shù)值與真值相同例如,真值y=+100011,8位字長(zhǎng),[y]原=[Y]反=[Y]補(bǔ)=00010011最高位(符號(hào)位)為0表示正數(shù),其右側(cè)二個(gè)0用于補(bǔ)齊8位字長(zhǎng)
n位二進(jìn)制數(shù)的反碼加其原碼
N位二進(jìn)制數(shù)原碼,反碼,所能表示的十進(jìn)制數(shù)的范圍都是是-2^(N-1)-1~+2^(N-1)-1。N位二進(jìn)制數(shù)補(bǔ)碼能表示的十進(jìn)制數(shù)的范圍是-2^(N-1)~+2^(N-1)-1。
二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)使用"按權(quán)相加"法,把二進(jìn)制數(shù)首先寫成加權(quán)系數(shù)展開式,然后按十進(jìn)制加法規(guī)則求和。
原碼表示法規(guī)定:用符號(hào)位和數(shù)值表示帶符號(hào)數(shù),正數(shù)的符號(hào)位用“0”表示,負(fù)數(shù)的符號(hào)位用“1”表示,數(shù)值部分用二進(jìn)制形式表示。所以N位二進(jìn)制數(shù)原碼能表示的十進(jìn)制數(shù)的范圍是-2^(N-1)-1~+2^(N-1)-1。
反碼表示法規(guī)定:正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼為對(duì)該數(shù)的原碼除符號(hào)位外各位取反。所以N位二進(jìn)制數(shù)反碼能表示的十進(jìn)制數(shù)的范圍是-2^(N-1)-1~+2^(N-1)-1。
補(bǔ)碼表示法規(guī)定:正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)的補(bǔ)碼為對(duì)該數(shù)的原碼除符號(hào)位外各位取反,然后在最后一位加1。所以N位二進(jìn)制數(shù)補(bǔ)碼能表示的十進(jìn)制數(shù)的范圍是-2^(N-1)~+2^(N-1)-1。
擴(kuò)展資料:
原碼是有符號(hào)數(shù)的最簡(jiǎn)單的編碼方式,便于輸入輸出,但作為代碼加減運(yùn)算時(shí)較為復(fù)雜。在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來(lái)表示和存儲(chǔ)。原因在于,使用補(bǔ)碼,可以將符號(hào)位和數(shù)值域統(tǒng)一處理;同時(shí),加法和減法也可以統(tǒng)一處理。
在計(jì)算機(jī)中,利用電子器件的特點(diǎn)實(shí)現(xiàn)補(bǔ)碼和真值、原碼之間的相互轉(zhuǎn)換,非常容易。補(bǔ)碼表示統(tǒng)一了符號(hào)位和數(shù)值位,使得符號(hào)位可以和數(shù)值位一起直接參與運(yùn)算,這也為后面設(shè)計(jì)乘法器除法器等運(yùn)算器件提供了極大的方便。
37的原碼反碼和補(bǔ)碼
先求37對(duì)應(yīng)的二進(jìn)制真值。
37=32+4+1
=2^5+2^2+2^0
因此其二進(jìn)制真值是100101。
如果用八位二進(jìn)制編碼,因?yàn)槭钦龜?shù),最高位符號(hào)位是0,真值放原碼右側(cè),其余各位用0補(bǔ)齊,得到原碼為00100101。
正數(shù)補(bǔ)碼、反碼與原碼相同,因此37的原碼、反碼、補(bǔ)碼都是00100101。
-80的原碼反碼補(bǔ)碼
-80
原碼:11010000
反碼:10101111
補(bǔ)碼:10110000
-73
原碼:11001001
反碼:10110110
補(bǔ)碼:10110111
-53
原碼:1110101
反碼:1001010
補(bǔ)碼:1001011
真值為正時(shí)。其原碼,反碼,補(bǔ)碼完全相同。
真值為負(fù)時(shí),其原碼就是把負(fù)號(hào)改為1,其余不變。反碼就是負(fù)號(hào)改為1,其余取反。補(bǔ)碼就是在反碼的基礎(chǔ)上加1,加1時(shí)記得是逢2進(jìn)1。
127的移碼
127D
=2^7-1D
=1111111B
得到127的二進(jìn)制真值是1111111。
如果用八位二進(jìn)制編碼,因127是正數(shù),它的原碼、反碼、補(bǔ)碼都是01111111。而移碼是將補(bǔ)碼的最高位置反,因此127的八位移碼是11111111。
11111111,如果是原碼:它就是-127;如果是補(bǔ)碼:它就是-1;如果是反碼:它就是-0;如果是移碼:它就是+127。按照規(guī)則,依次都求一遍,就知道這些了。
END,本文到此結(jié)束,如果可以幫助到大家,還望關(guān)注本站哦!