計算機中,負數為什麼用補碼錶示,二進位制負數的補碼的原理為什麼要用補碼的形式改更負

2022-02-15 04:00:53 字數 4516 閱讀 2865

1樓:沙裡波特

計算機中,負數為什麼用補碼錶示?

這是一個常識性的問題。

對於鐘錶,倒撥 5 小時,可以用正撥 7 小時來代替。

對於兩位十進位制數,-1,可以用 +99 來代替。

如:25 - 1 = 24

25 + 99 = (1) 24

捨棄進位,結果就是相同的。

這裡說到的 (5、7) 和 (1、99) 就是互為「補數」的關係。

找到了補數,就可以用加法,代替減法運算。

計算機中,負數為什麼用補碼錶示?用補碼代替負數,就可以節約一個減法器,簡化計算機的硬體裝置。

2樓:匿名使用者

保證0的左右不矛盾

1是0001,推算出0是0000;

-1的是1111,推算出0也是0000。

如果直接用反碼(0變成1,1變成0)那麼0就會有兩個結果。

如果用第一位表示符號,後三位表示大小,那麼就有空間浪費。

3樓:匿名使用者

這個問題要說清楚太複雜了,簡單來說,就是這樣表示以後,二進位制的加法和減法可以統一起來,cpu的算術運算單元就不用區分是加法還是減法了

比如說,一個4位的cpu,表示2是0010,表示1是0001,用補碼錶示-1是1111。這樣,計算2+1,就是0010+0001=0011,也就是3;計算2-1,就是2+(-1)=0010+1111=0001(超過4位的高位捨棄),cpu不用區分是2-1還是2+1,只要把它們的補碼相加就行了

二進位制負數的補碼的原理為什麼要用補碼的形式改更負

4樓:匿名使用者

1、在計算機系統中,數值一律用補碼來表示(儲存).

主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理.另外,兩個用補

碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄.

2、補碼與原碼的轉換過程幾乎是相同的.

數值的補碼錶示也分兩種情況:

(1)正數的補碼:與原碼相同.

例如,+9的補碼是00001001.

(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1.

例如,-7的補碼:因為是負數,則符號位為「1」,整個為10000111;其餘7位為-7的絕對值+7的原碼

0000111按位取反為1111000;再加1,所以-7的補碼是11111001.

5樓:沙裡波特

正確答案,可見:網頁連結。

負數在計算機中是用補碼錶示嗎?為什麼?我是新手,請大神指點,謝謝~~!

6樓:匿名使用者

是的。補碼最大的好處是可以把減法運算等同於加法運算。這樣在alu中只需要包含加法運算電路即可,大大簡化了cpu的電路結構。

7樓:沙裡波特

計算機中,只用補碼錶示正負數。在計算機中,並不存在原碼反碼。求補碼,也有更簡單的方法,也用不著原碼反碼。

所以,原碼反碼,都沒有任何用處。

以八位碼長,來說明計算機中的補碼:數字 0 的補碼是:0000 0000。

數字 1 的補碼是:0000 0001。

數字 2 的補碼是:0000 0010。

。。。依次遞增。。。

數字 127 的補碼,就是:0111 1111。

負數,你就依次遞減吧。數字 0 的補碼是:0000 0000。

數字-1 的補碼是:0000 0000-1=1111 1111。(=255)

數字-2 的補碼是:1111 1110。(=254)。。。依次遞減。。。

數字-128 的補碼,就是:1000 0000。(=128)----

由此可推出補碼的定義:

零和正數的補碼,就是該數字本身。

負數的補碼,就是:256 + 該負數。

一般的計算機專業教材上,都有這個公式。

----

這就是:計算機中,正負數的存放格式。

其他說法如:原碼反碼符號位,都是人為瞎編的。

它們和計算機,沒有任何關係。

計算機中,為什麼負整數用補碼錶示而不直接用原碼,例

8樓:狄文靜庫雅

因為一個位元組是八位的。我們總是利用最高位表示符號位,正數的補碼是本身舉個例子,若正數0111,1111

按照你的意思,直接加1

不就變成10111,1111了嘛

還有,補碼錶示負數是因為計算機中的加減運算,對負數都是通過補碼來運算的,通過補碼的加減,得到的補碼再反過來求出對應的負數,計算機中的計算只有0和1

不可能在數字前加正負號,所以負數必須用補碼

c語言中為什麼用補碼代表負數

9樓:巫馬夜玉詩浩

因為二進位制中沒有辦法表示負號,

只有0和1

使用補碼的話,

減法和加法都可以使用加法器完成操作,

所以就這樣了

計算機中浮點數數是用補碼還是原碼錶示

10樓:月似當時

在計算機中,正數用原碼錶示;負數用補碼錶示;而補碼=反碼加1。

一個浮點數a由兩個數m和e來表示:a = m × b^e。在任意一個這樣的系統中,選擇一個基數b(記數系統的基)和精度p(即使用多少位來儲存)。

m(即尾數)是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。

如果m的第一位是非0整數,m稱作規格化的。有一些描述使用一個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。

擴充套件資料

浮點數的溢位以其階碼溢位表現出來的。在加\減運算過程中要檢查是否產生了溢位:若階碼正常,加(減)運算正常結束;若階碼溢位,則要進行相應處理。另外對尾數的溢位也需要處理。

1、階碼上溢 超過了階碼可能表示的最大值的正指數值,一般將其認為是+∞和-∞。

2、階碼下溢 超過了階碼可能表示的最小值的負指數值,一般將其認為是0。

3、尾數上溢 兩個同符號尾數相加產生了最高位向上的進位,將尾數右移,階碼增1來重新對齊。

4、尾數下溢 在將尾數右移時,尾數的最低有效位從尾數域右端流出,要進行舍入處理。

11樓:匿名使用者

在iee754中,尾數用原碼錶示,階碼用移碼錶示。歡迎採納

12樓:沙裡波特

一個浮點數,分四個部分:數符、階符、階碼、尾數。

每個部分,既不是原碼,也不是補碼。

13樓:楊楊楊又青

浮點數表示為:數符+尾數+階符+階碼

x的階碼為0001,就是1=2^0

y的階碼為1111,就是15=2^4-1=2^4-2^0x尾數用原碼錶示為0.1010,則用補碼錶示為0.1010y尾數用原碼錶示為0.

1001,則用補碼錶示為0.10010.1010+1111

0.1001+0001

1.001110000=2^0+2^-3+2^-4+2^-5=1+1/8+1/16+1/32=39/32=1.21875

所以x+y=1.21875,不知道這樣對不對如果對回一下,呵呵,學太久了忘了……

14樓:一切只為你我願

問題1:在計算機中,正數用原碼錶示;負數用補碼錶示;而補碼=反碼加1。

例如:如果定義 int i; 那麼i就是一個有符號整形變數。這是,如果你給i賦值,那麼計算機就會根據 i的最高位,判定其大小。

比如,i = -3。計算自動儲存的數為(1111 1111 1111 1101

),這個就是補碼。

計算機語言中負數以其正值的補碼形式表示是什麼意思?

15樓:

現在的計算機中,都是高、低電平,是電壓訊號。

但是,通常是用二進位制數,來表示。

這些二進位制數,有些人,就把它們,想像成補碼,用來代表有符號數。

其實,並非所有的人,都是這麼想的。

比如:mov al, 3

add al, -125

結果,al = 1000 0110b。

你可以把它理解成-122,也可以認為是134。

------

就是說,計算機中,都是二進位制數,這是肯定的。

是不是補碼 ?這就要看《人》了。

誰願意說是補碼,就由他們說去,不用跟他們較真。

其實,絕大多數,都不是補碼。

三種狀態可以互相轉化。 熔化:物質從固態變

計算機中為什麼0為假,非0為真

朋友,這是一個與和或的問題。是或的意思,而 是與的 意思,相信你應該版知道 對權 於或而言,只要有一個是真,那麼這個或的結果就是真 而對於與來講,必須2個都為真,結果才是真,否則為假。現在你需要知道,計算機語言中判斷真假的準則是 零為假,非零為真 也就是說 9 0 中的9已經為真,所以 9 0 這個...

28位二進位制數為什麼它是計算機中基本的數

二進位制是計算機的一種語言,以01表示 以下是網路上的一篇說明文章 計算機中常用的進位制 二進位制 八進位制 十六進位制 進位制 數 字 進位方法 十進位制 0 1 2 3 4 5 6 7 8 9 逢十進一 二進位制 0 1 逢二進一 八進位制 0 1 2 3 4 5 6 7 逢八進一 十六進位制 ...

在計算機中為什麼引入八進位制和十六進位制

二進位制數書寫冗長 易錯 難記,而十進位制數與二進位制數之間的轉換過程複雜,所以一般用十六進位制數或八進位制數作為二進位制數的縮寫。進位計數制 按進位的原則進行的計數方法稱為進位計數制。在採用進位計數的數字系統中,如果用r個基本符號 例如 0,1,2,r 1 表示數值,則稱其為基r數制 radix ...