1樓:匿名使用者
原碼, 反碼, 補碼的基礎概念和計算方法.
在探求為何機器要使用補碼之前, 讓我們先了解原碼, 反碼和補碼的概念.對於一個數, 計算機要使用一定的編碼方式進行儲存. 原碼, 反碼, 補碼是機器儲存一個具體數字的編碼方式.
1. 原碼
原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值. 比如如果是8位二進位制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符號位. 因為第一位是符號位, 所以8位二進位制數的取值範圍就是:
[1111 1111 , 0111 1111]
即[-127 , 127]
原碼是人腦最容易理解和計算的表示方式.
2. 反碼
反碼的表示方法是:
正數的反碼是其本身
負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
可見如果一個反碼錶示的是負數, 人腦無法直觀的看出來它的數值. 通常要將其轉換成原碼再計算.
3. 補碼
補碼的表示方法是:
正數的補碼就是其本身
負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]補
[-1] = [10000001]原 = [11111110]反 = [11111111]補
對於負數, 補碼錶示方式也是人腦無法直**出其數值的. 通常也需要轉換成原碼在計算其數值。
2樓:沙裡波特
帶符號的數字,可變成各種**(八位的),見圖:
但是,在計算機中,原碼和反碼都是不存在的。
因此,就不必關心它們了。
只有補碼,才是實用的編碼。
其變換規律,你看看圖,就可以自己摸索出來。
3樓:匿名使用者
原碼 正數的符號位為0,負數的符號位為1,其它位按照一般的方法來表示數的絕對值。用這樣的表示方法得到的就是數的原碼。
反碼 對於一個帶符號的數來說,正數的反碼與其原碼相同,負數的反碼為其原碼除符號位以外的各位按位取反。
補碼 正數的補碼與其原碼相同,負數的補碼為其反碼在最低位加1
4樓:
一、原碼
求原碼:x≥0,則符號位為0,其餘照抄;
x≤0,則符號位為1,其餘照抄。
【例1】x=+1001001 [x]原 = 01001001【例2】x=-1001001 [x]原 = 11001001二、反碼
求反碼:若x≥0,符號位為0,其餘照抄;
若x≤0,符號位為1,其餘按位取反。
【例3】x=+1001001 [x]反 = 01001001【例4】x=-1001001 [x]反 = 10110110三、補碼
求補碼:若x≥0,符號位為0,其餘照抄;
若x≤0,符號位為1,其餘取反後,最低位加1。
【例5】x=+1001001 [x]補 = 01001001【例6】x=-1001001 [x]補 = 10110111
計算機中原碼,反碼,補碼之間的關係?
5樓:匿名使用者
原碼:就是原碼,真實的碼
反碼:在原碼的基礎上,符號位不變,數值位按位取反補碼:1)正數的補碼:與原碼相同。
【例1】+9的補碼是00001001。
(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反然後整個數加1。
6樓:
小數的原碼,反碼,補碼,負小數的原碼,補碼,反碼和移碼怎麼算,如 0 3125 10進製
公孫曜兒板妙 化為2進製是整數部分除以二知道變為1 小數部分乘以2直到變為1 符號位0表示正1表示負 正數 原碼 補碼 負數 原碼 正數部分 去掉負號 的二進位制值,且符號位 最左邊的位元位 為1反碼 正數部分 去掉負號 的二進位制值,按位取反補碼 反碼 1小數點依舊用點 定點數所謂定點數是指小數點...
原始碼反碼與補碼,原碼 反碼和補碼
8位2進製原碼反碼補碼表示法 第一位是符號位,正數為0負數為1 67的原碼是11000011,換成反碼符號位不變,其他各位依次求反 10111100,換成補碼只在反碼基礎上末位加1 55的原碼00110111,正數原碼反碼補碼相同。補碼實現55 67 00110111 把這個補碼末位減一,符號位不變...
98, 98,79, 43的原碼反碼補碼
98 原碼 01100010 反碼 01100010 補碼 01100010 98 原碼 11100010 反碼 10011101 補碼 10011110 76 原碼 01001100 反碼 01001100 補碼 01001100 76 原碼 11001100 反碼 10110011 補碼 101...