正數的補碼 , 原碼 , 反碼 , 是什么關系?

文章插圖
正數 , 原碼=反碼=補碼 。
例如 , 用8位字長的機器碼表示+19d,
則:
[+19]原=[+19]反=[+19]補=0001
0011b
正負數的原碼 , 補碼 , 反碼求法正數的原碼 , 反碼 , 補碼都是一樣的 。
負數的原碼你應該知道的 , 就是帶符號位的二進制數 。反碼 , 符號位不變為1 , 其他每位二進制數取反 , 1變0 , 0變1.補碼就是在反碼的基礎上 , 符號位不變 , 最低位加1 , 得到補碼 。這里有個簡單的求補碼的方法 , 從原碼的最低位向最高位看去 , 遇到第一個1前 , 保持不變 , 第一個1前面的二進制串取反(符號位保持不變) 。
下面是一個例子 。
x=1011 0110
這是一個負數 , 它的原碼 , 反碼 , 補碼分別是:1011 0110 , 1100 1001 , 1100 1010
用上面的那個簡單的方法就可以一步寫出來了 。
有關更詳細的原理 , 可以交流一下 。
原碼反碼補碼(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]原
正數,負數原碼的補碼的補碼是他本身嗎【正數的原碼反碼補碼是什么,正數的原碼反碼補碼什么關系】正數的原碼、反碼、補碼都是相同的 。
負數的原碼、反碼、補碼各是不同的 。
給定一個數字 , 可以按照規則 , 求出它的原碼、反碼、補碼 。
但是 , 給定一個“原碼” , 可就沒有求“原碼的補碼”的規則;
更沒有求“原碼的補碼的補碼”的規則 。
“原碼的補碼的補碼”是他本身嗎?只有天知道 。
請問在計算機中正數的原碼、反碼、補碼是一樣的么?不是!
- 截然拼音怎么寫的拼,截然拼音和意思
- 清霽素朝,清霽藍釉
- 炒蘆筍的家常做法,蘆筍要削皮嗎清炒蘆筍要焯水嗎
- 冰泉牙膏是哪個公司的,冰泉牙膏是哪個國家的品牌
- 鍵盤esc怎么讀,escape怎么讀
- 中秋節的來歷和風俗60字,有關中秋節風俗
- 好聽的游戲名字女古風,好聽的游戲名字女可愛
- 坑的拼音和組詞和部首,坑的拼音和組詞組詞語
- 臉頰兩邊發黑是什么原因引起的,臉頰兩側發黑怎么解決
- 1到20的平方根的口訣表,1到20的平方數背誦的技巧
