當前位置:編程學習大全網 - 源碼下載 - 在C語言中,“原碼,反碼和補碼”有什麽不同啊?

在C語言中,“原碼,反碼和補碼”有什麽不同啊?

1)原碼表示

原碼表示法是機器數的壹種簡單的表示法。其符號位用0表示正號,用:表示負號,數值壹般用二進制形式表示。設有壹數為x,則原碼表示可記作[x]原。

例如,X1= +1010110

X2= 壹1001010

其原碼記作:

[X1]原=[+1010110]原=01010110

[X2]原=[-1001010]原=11001010

在原碼表示法中,對0有兩種表示形式:

[+0]原=00000000

[-0] 原=10000000

2)補碼表示

機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼壹樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有壹數X,則X的補碼表示記作[X]補。

例如,[X1]=+1010110

[X2]= 壹1001010

[X1]原=01010110

[X1]補=01010110

即 [X1]原=[X1]補=01010110

[X2] 原= 11001010

[X2] 補=10110101+1=10110110

機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼壹樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有壹數X,則X的補碼表示記作[X]補。

例如,[X1]=+1010110

[X2]= 壹1001010

[X1]原=01010110

[X1]補=01010110

即 [X1]原=[X1]補=01010110

[X2] 原= 11001010

[X2] 補=10110101+1=10110110

(3)反碼表示法

機器數的反碼可由原碼得到。如果機器數是正數,則該機器數的反碼與原碼壹樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。設有壹數X,則X的反碼表示記作[X]反。

例如:X1= +1010110

X2= 壹1001010

[X1]原=01010110

[X1]反=[X1]原=01010110

[X2]原=11001010

[X2]反=10110101

反碼通常作為求補過程的中間形式,即在壹個負數的反碼的未位上加1,就得到了該負數的補碼。

例1. 已知[X]原=10011010,求[X]補。

分析如下:

由[X]原求[X]補的原則是:若機器數為正數,則[X]原=[X]補;若機器數為負數,則該機器數的補碼可對它的原碼(符號位除外)所有位求反,再在未位加1而得到。現給定的機器數為負數,故有[X]補=[X]原十1,即

[X]原=10011010

[X]反=11100101+1

[X]補=11100110

例2. 已知[X]補=11100110,求[X]原。

分析如下:

對於機器數為正數,則[X]原=[X]補

對於機器數為負數,則有[X]原=[[X]補]補

現給定的為負數,故有:

[X]補=11100110

[[X]補]反=10011001+1

[[X]補]補=10011010=[X]原+1

[[X]補]補=10011010=[X]原

總結壹下,原碼(為負時,正時都不變)全部取反即得到反碼,反碼加

"1"就得到補碼了,就是這麽簡單。

  • 上一篇:近視的癥狀有哪些?
  • 下一篇:用二分法求方程近似解時,可以精確到小數點後任壹數字.對不對..二分法只用於求方程近似解呢
  • copyright 2024編程學習大全網