㈠ 說明由加補碼完成減法運算的原理以及溢出產生的原因及解決的辦法
從10進制來說:
減一,和加99,效果相同嗎?
在100之內,它們就是相同的。
99,就是1的補數,100就是模。
從8位2進制來說:
減一,和加255,效果也是相同的。
255,就是1的補碼,二進制數 1 0000 0000 就是模,即十進制的 256。
求出補碼後,就可以用「加補碼」完成減法運算。
原理就是上述的「同模」理論。
如果結果的數字太大,超出了256所能容納的范圍,就是溢出。
溢出了,並沒有解決的辦法。
反碼+1的方式,只是經驗公式而已,沒有原理。
它說明不了-128的補碼。因為在8位二進制的條件下,-128並沒有反碼。
㈡ 二進制的原碼、補碼、反碼詳解
計算機中,並沒有原碼和反碼,只是使用補碼,代表正負數。
使用補碼的意義:可以把減法或負數,轉換為加法運算。從而簡化計算機的硬體。
------------
比如鍾表,時針轉一圈,周期是 12 小時。
倒撥 3 小時,可以用正撥 9 小時代替。
9,就稱為-3 的補數。
計算方法:12-3 = 9。
對於分針,倒撥 X 分,就可以用正撥 60-X 代替。
------------
如果,限定了兩位十進制數 (0~99),周期就是 100。
那麼,減一,就可以用 +99 代替。
24-1 = 23
24 + 99 = (1) 23
忽略進位,只取兩位數,這兩種演算法,結果就是相同的。
於是,99 就是 -1 的補數。
其它負數的補數,大家可以自己求!
求出了負數的補數,就可用加法,代替減法了。
------------
計算機中使用二進制,補數,就改稱為【補碼】。
常用的八位二進制是:0000 0000~1111 1111。
它們代表了十進制:0~255,周期就是 256。
那麼,-1,就可以用 255 = 1111 1111 代替。
所以:-1 的補碼,就是 1111 1111 = 255。
同理:-2 的補碼,就是 1111 1110 = 254。
繼續:-3 的補碼,就是 1111 1101 = 253。
。。。
最後:-128,補碼是 1000 0000 = 128。
計算公式:負數的補碼=256+這個負數。
正數,直接運算即可,不需要求補碼。
也可以說,正數本身就是補碼。
------------
補碼的應用如: 7-3 = 4。
用補碼的計算過程如下:
7 的補碼=0000 0111
-3的補碼=1111 1101
--相加-------------
得:(1) 0000 0100 = 4 的補碼
舍棄進位,只保留八位,作為結果即可。
這就是:使用補碼,加法就代替了減法。
所以,在計算機中,有一個加法器,就夠用了。
原碼和反碼,都沒有這種功能。
------------
原碼和反碼,毫無用處。計算機中,根本就沒有它們。
㈢ 二進制計算的疑惑 減去某個數等於加上它的補碼(())
"減去某個數等於加上它的補碼"這句話本身不嚴謹,存在問題。如果說「減去某個數等於加上它的相反數的補碼」則比較嚴謹。例如你舉的3-1這個例子:3減去1等於3加上1的相反數-1的補碼。對於三位二進制補碼而言,011-001=011+111。
㈣ 計算機源碼,反碼,補碼之間怎麼計算
1、正整數的原碼、反碼、補碼完全一樣,即符號位固定為0,數值位相同。
2、負整數的符號位固定為1,由原碼變為補碼時,規則如下:原碼符號位1不變,整數的每一位二進制數位求反,得到反碼;反碼符號位1不變,反碼數值位最低位加1,得到補碼。
3、例如正整數的原碼為01110110,則反碼和補碼也為01110110;負整數的原碼為11110110,反碼為10001001,補碼為11110111。
拓展資料:
1、反碼是數值存儲的一種,多應用於系統環境設置,如linux平台的目錄和文件的默認許可權的設置umask,就是使用反碼原理。在計算機內,定點數有3種表示法:原碼、反碼和補碼。
2、在計算機系統中,數值一律用補碼來表示(存儲)。 主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補 碼表示的數相加時,如果最高位(符號位)有進位,則進位被舍棄。
㈤ 二進制中減一個數是不是等於加上這個數的補碼
減去一個數等於加上這個數的補碼是指:兩個數之差的補碼等兩個數補碼之差! +4的二進製表示為+0100,其補碼為00100(最前面一位為符號位); -1的二進製表示為-0001,其補碼為11111(最前面一位為符號位); 所以(0100-0001)的補碼=(0100)的補碼+(-0001)的補碼=00100+11111=100011=00011(符號位有進位時,進位要丟棄) 故(0100-0001)=+0011 即4-1=3
求採納二進制中減一個數是不是等於加上這個數的補碼
㈥ 計算機的原碼,反碼,補碼是怎麼回事可以舉例說明嗎
計算機的原碼,反碼,補碼是怎麼回事?
可以舉例說明嗎?
計算機中,並沒有原碼和反碼。
補碼是怎麼回事?
這得從「補數」談起。
計算機所計算的位數,是固定的,如八位機。。。
位數限定之後,就可以用「補數」代替負數,用加法實現減法運算。
如兩位十進制,-1,就可以用 +99 代替。
25 - 1 = 24
25 + 99 = (一百) 24
舍棄進位,只取兩位,這兩種演算法功能就是相同的。
99,就是-1 的補數。計算公式:補數 = 一百+負數。
一百,是兩位十進制數的計數周期。
-------------------------
計算機用二進制,補數,就改稱為:補碼。
八位二進制:0000 0000 ~ 1111 1111 (十進制 255)。
計數周期是:2^8 = 256。
所以,-1 補碼就是 256 + (-1) = 255 = 1111 1111(二進制)。
用不存在的「原碼反碼取反加一」來求,也是這個結果。
求負數補碼的計算公式: 周期 + 該負數。
正數,不用轉換。也可以說,正數自身就是補碼。
-------------------------
可以舉例說明嗎?
例如: 7-3 = 4。
用補碼的計算過程如下:
7 的補碼=0000 0111
-3的補碼=1111 1101
--相加-------------
得(1) 0000 0100 = 4 的補碼
舍棄進位,只保留八位作為結果,這就實現了 7-3。
㈦ 求反碼,補碼,原碼的加減運算規則及原理(尤其是反碼……)
對於正數來說,其二進制原碼,反碼,補碼均為相同的,為原碼的形式;
對於負數來說,其反碼為符號位保持不變,其餘各位取反,其反碼為符號位保持不變,其餘各位取反後再在最後一位上加1。
例如:十進制數+18=二進制數010010(第一位為符號位,0為正,1為負),其反碼和補碼均為010010
十進制數-18=二進制數110010,其反碼為101101(符號位保留,其餘取反),補碼為101110(符號位保留,其餘各位取反後末位加1)
關於你的問題:[a]補-[b]補=[a-b]補=[a]補+[-b]補,那麼是不是說 [b]補=- [-b]補 呢?
答案是肯定的。
舉個例子:十進制數+21=二進制數010101(第一位是符號位),那麼+21的補碼為001011,十進制數-21=二進制數110101,那麼-21的補碼為101011,
所以-(-21補)=(21)補
不知道解釋的你能否接受~
㈧ 原碼的減法為什麼可以轉換成補碼的加法意義又是什麼呢
時鍾,倒撥3小時,可以用正撥9小時來代替。
限定兩位數時,減一,就可用+99代替。
如:24-1=23
24+99=(1)23
只取兩位數,兩個結果,就是相同的。
99,就是-1 的補數。
(在二進制時,就稱為「補碼」。)
就是說:當限定計算的位數後,使用補碼,就可用加法代替減法運算。
意義:僅用一個加法器,就可做加減兩種運算。減少硬體,廠家省錢。
㈨ 原碼補碼問題
在計算機系統中,數值,一律用補碼來表示和存放。
原碼和反碼,在計算機中,都是不存在的。
使用補碼代表正負數值,可將負數,轉換成正數來計算。
這就可以節省硬體,只用加法器,便可實現加減法運算。
補碼,是是什麼意思?這得從【補數】談起。
計算機所計算的位數,是固定的,如八位機。。。
位數限定之後,其計數范圍,就有了周期性。
如兩位十進制 0~99,周期就是 100(一百)。
那麼,減一,就可以用 +99 代替:
25 - 1 = 24
25 + 99 = (一百) 24
舍棄進位,只取兩位,這兩種演算法,功能就是相同的。
這就用正數,代替了負數!用加法,就實現了減法運算!
99,就是-1 的補數。計算公式:補數 = 周期 + 負數。
學過三角函數的同學,都知道,函數周期是:2π(360°)。
那麼-90°,也可以+270° 來計算。這也是同樣的道理。
一個負角度,怎麼計算出「等效的正角度」,大家都會。
-------------------------
計算機用二進制,補數,就改稱為:補碼。
八位二進制:0000 0000 ~ 1111 1111。
對應十進制:0 ~ 255。
計數周期是:2^8 = 256。
那麼,
-1 的補碼是 256 + (-1) = 255 = 1111 1111(二進制)。
-2 的補碼是:254 = 1111 1110。
。。。
-128 的補碼是:128 = 1000 0000。
用不存在的「原碼反碼取反加一」來求,也是這個結果。
求負數補碼的計算公式,也是: 周期 + 該負數。
正數,也可以使用這個公式。但是,計算後,這個周期的數值,
超出了計數范圍,就略去了。最後,還是這個正數。
-------------------------
例如: 7-3 = 4。
用補碼的計算過程如下:
7 的補碼=0000 0111
-3的補碼=1111 1101
--相加-------------
得(1) 0000 0100 = 4 的補碼
舍棄進位,只保留八位作為結果,就求出了 7-3。
-------------------------
原碼和反碼,在計算機中,都是不存在的,無用的。
它們不過是,計算機老師捧在手中的
㈩ 源碼反碼與補碼
8位2進制原碼反碼補碼表示法:第一位是符號位,正數為0負數為1
-67的原碼是11000011,換成反碼符號位不變,其他各位依次求反:
10111100,換成補碼只在反碼基礎上末位加1:
10111101。
55的原碼00110111,正數原碼反碼補碼相同。
補碼實現55-67:00110111
+10111101
---------------------------
11110100
把這個補碼末位減一,符號位不變各位取反得到結果的原碼表示:10001100,
轉換成十進制剛好等於-12,驗證了結果11110100是正確的。