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