原碼 補碼和反碼

2021-06-29 16:08:45 字數 2345 閱讀 2675

1)原碼表示法

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

例如,x1= +1010110

x2= 一1001010

其原碼記作:

[x1]原

=[+1010110]原

=01010110

[x2]原=[-1001010]原

=11001010

原碼表示數的範圍與二進位制位數有關。當用8位二進位制來表示小數原碼時,其表示範圍:

最大值為0.1111111,其真值約為(0.99)

10最小值為1.1111111,其真值約為(一0.99)

10當用8位二進位制來表示整數原碼時,其表示範圍:

最大值為01111111,其真值為(127)

10最小值為11111111,其真值為(-127)

10在原碼表示法中,對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

補碼表示數的範圍與二進位制位數有關。當採用8位二進位制表示時,小數補碼的表示範圍:

最大為0.1111111,其真值為(0.99)

10最小為1.0000000,其真值為(一1)

10採用8位二進位制表示時,整數補碼的表示範圍:

最大為01111111,其真值為(127)

10最小為10000000,其真值為(一128)

10在補碼表示法中,0只有一種表示形式:

[+0]補

=00000000

[+0]補

=11111111+1=00000000(由於受裝置字長的限制,最後的進製丟失)

所以有[+0]補

=[+0]補

=00000000

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]原

via :

原碼 反碼和補碼

數值有正負之分 計算機就用乙個數的最高位存放符號 0為正 1為負 這就是機器數的原碼了 假設機器能處理的位數為 8.即字長為 1byte,原碼能表示數值的範圍為 127 0 0 127 共256個.有了數值的表示方法就可以對數進行算術運算 但是很快就發現用帶符號位的原碼進行乘除運算時結果正確 而在加...

原碼 反碼 和 補碼。

這裡只講下自己對反碼的理解。大家都知道使用反碼表示負數有兩個優點,1.可以使得減法可以和加法一樣。2.符號位也參與了運算。那這是為什麼呢?下面可以進行一些簡單的數學推導 根據反碼定義,對於負數,反碼是除符號為以外取反 1。例如,4 變換步驟如下。a 4 0 000 0100 b 取反 0 111 1...

原碼 反碼和補碼

首先說一下機器數和真值 1 機器數 數在計算機中的二進位制表示形式就稱為機器數。機器數是帶符號的,在計算機用乙個數的最高位存放符號 0為正,1為負 這樣就將數的符號數值化了。比如,十進位制中的數 5 計算機字長為8bits,轉換成二進位制就是00000101。如果是 5 就是 10000101 那麼...