1樓:沙裡波特
下面按照八位二進位來解釋。
十進位數字,在計算機中,是以二進位儲存:
十進位數 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 的補碼,無異於緣木求魚。
所以,大家,完全不必在原碼反碼 上浪費時間精力。
但是,考試怎麼辦?
呃 ..千萬別跟老師較勁,他怎麼講,你就怎麼答吧。
2樓:做而論道
十進位為什麼不能表示握前負數?
能。比棚皮衫如,你花了 5 元錢,就是-5。
這不就鏈腔是十進位的負數嗎?
二進位如何表示負數啊
3樓:太平洋科技
一般用補碼方式表示,舉例說明:
52,假設儲存的資料是8位二進位數,即8位二進位補碼。
先將52轉換成二進位數:00110100b取反:11001011b
加1:11001100b
則-52d的8位二進位補碼為11001100b如果已知11001100b是有符號數,因為最高位是1,則這個碼是用補碼錶示的乙個負數。
11001100b減1=11001011b取反=00110100b=52d
則可知:11001100b是-52d的補碼錶示。
4樓:做而論道
無論什麼進位,在前面加上乙個負號(-)就表示它是負數。
用二進位表示負數,也是一樣,加上負號(-)就行了。
比如:
-319 (十進位)=-100111111 (二進位)= -477 (八進位)= -13f (16 進位)
十進位制正數的二進位制形式和十進位制負數的二進位制形式之間的轉化
計算機內,使用補碼錶示數字的 把正12每位取反之後,加1就是 12了 補充 給你詳細說下吧 計算機有三種碼,原碼,反碼和補碼。馮結構的計算機內,資料儲存用的是補碼,因為只用加法就可以計算減法了.看你的問題 0 0000000 00000000 00000000 00001100 1 12每位取反後得...
數學常現大多數都十進位制,為麼不用八進位制,十二進位制,十六進位制
為什麼生活中的數學都是十進位制的原因如下 十進位制在中國 首先,人們日常生活中所不可或離的十進位值制,就是中國的一大發明。至遲在商代時,中國已採用了十進位值制。從現已發現的商代陶文和甲骨文中,可以看到當時已能夠用 一 二 三 四 五 六 七 八 九 十 百 千 萬等十三個數字,記十萬以內的任何自然數...
假設用位元組表示有符號整數,試求出十進位制數86的原碼,反
若字長8位,則 86 原 11010110b 86 反 10101001b 86 補 10101010b 一個數的原碼,反碼,補碼怎麼算 數在計算機中是以二進位制形式表示的。數分為有符號數和無符號數。原碼 反碼 補碼都是有符號定點數的表示方法。一個有符號定點數的最高位為符號位,0是正,1是副。以下都...