為什麼 1在二進位碼中只表示正數而不表示負數?

2025-05-07 20:25:08 字數 4745 閱讀 9907

1樓:仁昌愛娛樂

在二進位。碼中,採用最高位是符號位的方法來區分正負數,正數的符號位為0、負數的符號位為1。剩下的就是這個數的絕對值。

部分。通過將負數轉為二進位原碼,再求其原碼的反碼,最後求得的補碼。

即負數的二進位表示結果。

比如整數-1。先取1的原碼:00000000 00000000 00000000 00000001,得反碼:

11111111 11111111 11111111 11111110,最後得補碼: 11111111 11111111 11111111 11111111,即-1在計算機裡用二進位表示結果。

2樓:做而論道

為什麼-1 在二進位碼中只表示正數而不表示負數?

不僅是-1。

任何負數,在計算機中,的的確確,都是用正數表示的。

負數,在計算機中,是用補碼錶示的。

補碼,就是乙個「代替負數」的正數。

使用了補碼之後,計算機中,就沒有負數了。滲弊源。

而且,也就沒有了減卜梁法運算。

那麼,用乙個加法器,就能橫行天下了。

正數,怎麼就能代替負數呢?

用十進位來說明,比較容易理解。

限定,只使用 2 位數來計數,迴圈週期就是 10^2 = 100。

可以有: 25 - 1 = 24

25 + 99 = 一百) 24

如果你捨棄進位,僅保留 2 位,+99 就能代替-1 !

而且,加法,就代替了減法運算 !

同樣,+98 也可以代替-2。

限定了位數,捨棄進位,正數就能代替負數。

這正數,可稱為「負數的補數」。

替換公式:正數 = 負數 + 週期。

計算機用二進位,就改稱為:補碼。

轉換公式:補碼 = 負數 + 2^n, n 是補碼的位數。

那麼,-1 的 8 位補碼,就是:

(二進位)

255 = 1111 1111,的的確確,這就是一叢態個正數。

用它計算,如果你捨棄進位,它就當做-1。

如果你保留進位,它就是 255。

乙個數用二進位編碼,它是正數還是負數呢?

3樓:做而論道

乙個數用二進位編碼搜搭毀,它是正數還是負數世備呢?

是正是負,取決於演算法。比如,1111 1111,它可能是 255,也可能是-1。

把它加上 1,算式如下:

-相加---枝飢---和:(1) 0000 0000你如果放棄進位,這就是 -1 + 1 = 0。

你如果保留進位,這就是 255 + 1 = 256。

二進位數為什麼不是負數?

4樓:98聊教育

二進位小數的位權都是2的負整數次冪,即階數為負數。

例如二進位小數,轉換成十進位小數:

二進位數:二進位數除法與十進位數除法很類似,可先從被除數的最高位開始,將被除數(或中間餘數)與除數相比較,若被除數(或中間餘數)大於除數,則用被除數(或中間餘數)減去除數,商為1,並得相減之後的中間餘數,否則商為0。

再將被除數的下一位移下補充到中間餘數的末位,重複以上過程,就可得到所要求的各位商數和最終的餘數。

5樓:做而論道

你忘寫負號了吧!前面寫上負號(-)就是負數。你看吧:

x = 7 8 (十進位負整數)= -100 1110 (二進位負整數)

z =-0 . 2 5 (十進位負小數)

=-0 . 0 1 (二進位負小數)

十進位為什麼不能表示負數?

6樓:沙裡波特

下面按照八位二進位來解釋。

十進位數字,在計算機中,是以二進位儲存:

十進位數 0,存放的,就是二進位 0000 0000。

十進位數 +1,就加上 1,二進位是 0000 0001。

十進位數 +2,就再加 1,二進位是 0000 0010。

十進位數 +127,加 1加 1...就加到了 0111 1111。

負數怎麼辦? 你就從 0,依次遞減吧。

十進位數 0,以二進位 0000 0000 存放。

十進位數 -1,就減去 1,得 1111 1111 = 255(十進位)。

十進位數 -2,就再減 1,得 1111 1110 = 254。

十進位數 -3,就再減 1,得 1111 1101 = 253。

十進位數 -128,減 1減 1...得 1000 0000 = 128。含賣。

不要再減了,這就是最小值了。

你再繼續減,就是 0111 1111,這就是+127 了。)

因此,最小的負數是-128,存放的是 10000000。

總結:

零和正數:直接用二進位存放。

負數:存放形式是【256+這個負數】。

這套存放格式,就是所謂的【補碼】衡神。

求【補碼】,就是這麼簡單。

完全不用繞到「原碼反碼符號位」那麼遠。

可以用十進位了計算。如果需要二進位,你就再轉換一下。

用這個方法,不涉及原碼反碼符號位,就少了不少麻煩事。

補碼有什麼用?

利用補碼,可以把減法運算,轉換成加法。

所以,在計算機中,有乙個加法器,就夠用了。)

例如:6-2 = 4,用補碼運算如下:

6 的補碼是 0000 0110

2 的補碼是 1111 1110

1) 0000 0100 (=4 的補碼)

括號中的 1,是進位,捨棄不要了。)

注意:

如果運算結果超出了-128~+127 的範圍,結果將是錯的。

這種現象稱為「溢位」。

再注意一下:進位,並不等於溢位。

因為補碼的這個特性,所以,在計算機中,只是使用補碼存放資料。

而原碼反碼。

在計談攔逗算機中,都是不存在的。

原碼反碼的用途,僅僅是用於「筆算」。

其實,筆算的方法,並非只有「取反加一」。

另外,-128,有補碼,但是卻沒有原碼反碼!

用「取反加一」來求-128 的補碼,無異於緣木求魚。

所以,大家,完全不必在原碼反碼 上浪費時間精力。

但是,考試怎麼辦?

呃 ..千萬別跟老師較勁,他怎麼講,你就怎麼答吧。

7樓:做而論道

十進位為什麼不能表示握前負數?

能。比棚皮衫如,你花了 5 元錢,就是-5。

這不就鏈腔是十進位的負數嗎?

如果用二進位形式表示負數,該如何表示?

8樓:做而論道

你就直接進行【數 制 轉 換】即可。

但是,要注意:首位是負數。已鬥臘知補碼是首位 1,既代表負號,也代表-128。

數值位之和:64 + 16 + 4 + 1 = 85。

加在一起,就是真值:-43。---謹氏。

另乙個補碼是首位 0,就是代表 0。

數值位之和:64 + 16 + 4 + 1 = 85。

加在一起,就是真值:0 + 85 = 85。

-空晌滑。由補碼求真值,十分簡便。

並不用琢磨「原碼反碼取反加一符號位不變」。

老外算術不靈,才需要弄哪些騷操作。

0 000001二進位制表示的尾數為什麼1 0幾怎麼比原資料 0 000001還大呢

無論正數 負數,尾數都是大於1小於2的數,而要移動的小數點的位置則用階碼來表示,階碼最高位表示階碼正負 0為負,1為正 尾數的正 負則用階碼前面的最高位表示,0為正,1為負。二進位制減法,請問為什麼1.000 0.111等於0.001呢 十進位制裡為什麼1.000 0.999 0.001呢?一樣的道...

為什麼二進位制數可以表示十六進位制數啊

4位2進位制數一共可以組成16個不同情況,分別對應16進位制數的不同數值.0000 0 0001 1 0010 2 0011 3 1101 d 1110 e 1111 f 這樣1位十六進位制數就可以用4位二進位制數表示.是4位二進位制數表示一個十六進位制數。因為十六進位制數是從0 15,2進位制正好...

為什麼 128八位二進位下不能用原碼或反碼錶示?

在計算機系統中,數值,一律採用補碼錶示和儲存。為什麼不用原碼和反碼呢?因為構思原碼反碼時,濫用了乙個符號位。這就導致了 乙個零兩逗運大個編碼 的現象。由此產生的原碼反碼,都缺少了 悄蠢唯一性 的特點。世界上,只有乙個零,它們卻都弄了兩組 計算機的工作是嚴謹的,這種不規範的 早就被淘汰出局了。不知道為...