1樓:老馮文庫
求解補碼的步驟:
(1) 求解二進位制格式,得原碼;
(2) 如果為正數,補碼=原碼,如果是負數,繼續下一步;
(3) 除符號位外,各位取反;
(4) 最低位加1,最終得到負數的補碼。
假設機器字長為8(一個數的二進位制格式共有8位)。
以9為例,9(= 8+1 = 2的3次方 + 2的0次方)的二進位制格式為 000 1001,符號位為0(0表示正數,1
表示負數),它的原碼為0 000 1001。
由於9是正數,它的補碼等於它的原碼,即0000 1001。
以109為例,它的二進位制格式為110 1101,符號位為0,它的原碼為0 110 1101,它的補碼也就是
0110 1101。
以-9為例,
(1) 它的二進位制格式為000 1001,符號位為1,它的原碼為1000 1001。
(2) 由於-9是負數,繼續下一步。
(3) 除符號位外,各位取反,得1111 0110(最高位是符號位,不取反)。
(4) 最低位加1,得1111 0111。
-9的補碼為1111 0111。
2樓:匿名使用者
正數的補碼為其本身,負數的補碼為其絕對值取反後加1,如為單位元組數,補碼的表示範圍是: -128~+127,109的補碼還是01101101
3樓:沙裡波特
正數的補碼,是其本身。負數的補碼,就用它的正數,減一取反,即可得到補碼。
如,已知:+9 補碼是:0000 1001。
下面求-9 補碼:
先減一:0000 1001 - 1 = 0000 1000;
再取反:1111 0111。所以有:-9 補碼 = 1111 0111。
這不就完了嗎?
求原碼,反碼,補碼,原碼,反碼,補碼和移碼 原碼 1001101,反碼,補碼,移碼各是多少?
內容來自使用者 liangbing609 基本概念在計算機內部表示二進位制數的方法稱為數值編碼,把一個數及其符號在機器中的表示加以數值化,稱為機器數。機器數所代表的數稱為數的真值。表示一個機器數,應考慮以下三個因素 1 機器數的範圍 字長為8位,無符號整數的最大值是 11111111 b 255 d...
C語言求原碼的補碼問題,C語言原碼補碼問題
必須要用無符號數,位運算的規定就是如此,你想,如果有符號是負數,用哪個來位運算,結果呢 進行與運算是判斷該數是否最大的負數,注意補碼的數值範圍,負數比正數多一個,該數為最小負數,表示範圍內沒有對應的正數 通過補碼來求原碼?你以為補碼原碼是一一對應的嗎?八位補碼,可代表帶符號數 128 127。八位原...
補碼求真值,知道補碼怎麼求真值
1.正數,原碼 補碼。2.x 補 10001110,最高位為1,為負數!負數補碼求原碼步驟 假設無符 10001110b 128 8 4 2 142 256d 10001110b 256 142 114 所以,x 補 10001110,求x的真值 114.詳細理論 c語言 補碼.1.任何數值是以補碼...