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樓:
計算機中有原碼和反碼嗎?計算機原碼反碼補碼怎麼算
計算機中,並沒有原碼和反碼,只是使用補碼,代表正負數。使用補碼的意義 可以把減法或負數,轉換為加法運算。從而簡化計算機的硬體。比如鐘錶,時針轉一圈,週期是 12 小時。倒撥 3 小時,可以用正撥 9 小時代替。9,就稱為 3 的補數。計算方法 12 3 9。對於分針,倒撥 x 分,就可以用正撥 60...
C語言中,原碼,補碼和反碼怎麼換算?
換算方法如下 1 數在計算機中是以二進位制形式表示的。2 數分為有符號數和無符號數,原碼 反碼 補碼都是有符號定點數的表示方法。3 一個有符號定點數的最高位為符號位,0是正,1是副 原碼 就是這個數本身的二進位制形式。4 正數的 反碼 和補碼都是和原碼相同 負數的 反碼 是將其原碼除符號位之外的個位...
二進位制數原碼反碼補碼計算,二進位制數原碼反碼補碼計算
行使 反碼 本人認為就是一個互換原理 如 7的8b 用二進位制表示為00000111b。在00000111b 中把5個 零 互換成1.而3個1互換成 零 就可得到00000111b的反碼11111000b 原碼 00000111b最高位 n 1 置為1.得原碼為10000111b。而補碼 是在 反碼...