1樓:匿名使用者
數值有正負之分,計算機為了存放負數,就用乙個數的最高位存放符號(0為正,1為負),計算機裡就出現了正零和負零現象。如果用1個byte來寫,正零是00000000,負零是10000000.正零不等於負零了。
為了使涉及負數的運算不出錯,想出了反碼和補碼。 負數,除符號位外的其餘各位逐位取反就產生了反碼(0取1,1取0) 負數的補碼就是反碼加一。 正數的原碼反碼補碼是一樣的。
小數怎麼變補碼和反碼?先要化成二進位原碼。再看小數如何表示。
如果用定點小數,則最高位是符號位,接下來是小數最高位,從原碼到補碼,反碼的做法同上面說的整數做法一樣。 如果用浮點數,階碼部分為8位補碼定點整數,尾數部分為24位補碼定點小數。 階碼部分有一位階符位,表示指數的符號,其餘階碼錶示冪次。
尾數部分,數符表示尾數的符號位、其餘尾數表示規格化後的小數值。參考資料。
者: l_o_o_n_i_e - 總監。
2樓:匿名使用者
關於這個問題很是複雜,要通過某些資料查閱,希望我的建議對你有用,對了,我是萬龍,就選我的吧。
3樓:沙裡波特
-計算機,有反碼嗎?
另外,你這話,說反了。
你應該說:在計算機中,小數和整數,怎樣分別用補碼錶示?
呵呵,這個問題,就很簡單了。
為什麼現代計算機都用補碼來表示整數
4樓:做而論道
就是為了:簡化硬體,省錢。因為,負數,可以用乙個正數(補碼)代替。
如: 24 - 1 = 23
24 + 99 = (一百) 23
忽略進位,用 +99 就可以代替-1。
那麼,藉助於補碼,就可以,把減法轉換為加法運算。
因此,在計算機中,只需設定乙個加法器,便可加減通吃了。
5樓:可軒
機器數用補碼錶示的好處:
原碼簡單,適用於乘除運算,但用原碼錶示的數進行加減法運算比較複雜。
補碼,減法運算可以用加法來實現,例如 [x-y]補 = [x]補 +[y]補,而且,數的符號位也可以參與運算,便於運算結果的正負及是否溢位判斷。
因此在計算機中大都採用補碼來進行加減及乘除運算。
不僅是整數,小數亦可用補碼錶示)
計算機中,為什麼負整數用補碼錶示而不直接用原碼,例
6樓:狄文靜庫雅
因為乙個位元組是八位的。我們總是利用最高位表示符號位,正數的補碼是本身舉個例子,若正數0111,1111
按照你的意思,直接加1
不就變成10111,1111了嘛。
還有,補碼錶示負數是因為計算機中的加減運算,對負數都是通過補碼來運算的,通過補碼的加減,得到的補碼再反過來求出對應的負數,計算機中的計算只有0和1
不可能在數字前加正負號,所以負數必須用補碼。
計算機中關於帶符號整數的反碼、補碼、真值和原碼
7樓:科創
原碼:是指將最高位作為符號位(0表示正,1表示負),其它數字位代表數值本身的絕對值的數字表示方式。
例如:數字6 在計算機中原碼錶示為:0 000 0110
其中,第乙個數字0是符號位,0表示正數,0 000110是數字6的二進位資料表示。
數字-6 在計算機中原碼錶示為:1 000 0110
以上是在8位計算機中的原碼錶示,反碼錶示規則為:如果是正數,則表示方法和原碼一樣;如果是負數,符號位不變,其餘各位取反,則得到這個數字的反碼錶示形式。
例如,數字6 在8位 計算機中的反碼就是它的原碼:00000110
數字-6 在 8位計算機中的反碼為:11111001
補碼是計算機表示有號資料的一般方式,其規則為:如果是正整數,則表示方法和原碼一樣。
如果是負數,則將數字的反碼加上1(相當於將原碼數值位取反然後在最低位加1)。
例如:數字6 在8位 計算機中的補碼就是它的原碼:00000110
數字-6 在8 位 計算機中的補碼系統中為:1111 1010
如果數字 -6再取補碼是(0000 0101+1)=0000 0110 ( 6)
減法通常轉化為加法進行運算,將被減數與減數的補碼進行加法運算,即可得出差。
舉例:15-5計算方法:
11 1111 111(進位)
ps: 補碼之所以會存在,是為了讓負數變成能夠進行『+』運算的整數。在計算機系統中,數值一律用補碼來表示和儲存。
原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。負0與正0的表示方法相同。
注意:0的反碼、補碼都為零。
在用補碼方式表示n位帶符號整數時,最大數為2的n次方-1,最小數為負的2的(n-1)次方。以8bits為例,最大數為127(對應的二進位數01111111),最小數為-128(對應的二進位數為10000000)。由於計算機中存在位數的限制,整數溢位的問題就是不可避免的。
總結起來,整數的加法運算會產生以下幾種情況。
兩個正數相加,如果最高位變成了1,則產生了正溢位。
兩個負數相加,如果最高位變成了0,則產生了負溢位。
一正一負相加,不會產生溢位。
8樓:做而論道
計算機,使用二進位數。
八位二進位數是:0000 0000~1111 1111。
這些二進位數,都是正整數。
那麼,把它們換算成十進位,就是:0~255。
在不同應用場合,它們可以代表:數字、英文字元、漢字、聲音、影象。。。
在計算機系統中,數值,一律採用補碼錶示和儲存。
原碼和反碼,在計算機中,都是不用的。
只要掌握「數值與補碼」的換算,就可以了。
真值,又是什麼呢?
是「true form」嗎? 這就是原碼。是沒有用的垃圾。
8 位補碼代表的數值,可見下表:
如果計算機採用8位整數 那麼使用原碼 反碼 補碼分別能夠表示整數的範圍是多少
9樓:
如果計算機採用8位整數 那麼使用原碼 反碼 補碼分別能夠表示整數的範圍是多少。
為什麼現代計算機都用補碼來表示整數
10樓:機器
機器數用補碼錶示的好處:
原尺櫻薯碼簡單,適用於乘除運算,但用原碼錶示的數進行加減法運算比較複雜。
補碼,減法運算可以用加法來實現,例如 [x-y]補 = x]補 +[y]補,而且,數的符號位也可以參與運算,便於運算結果的正負及是否溢位頌梁判斷。
因此在計算機中大都採用補碼來進行加減及乘除運算。
不僅是整數,小數亦可用補碼陵者表示)
如果計算機採用8位整數 那麼使用原碼 反碼 補碼分別能夠表示整數的範圍是多少
11樓:聽不清啊
如果計算機採用8位二進位數,那麼使用原碼 反碼 補碼分別能夠表示整數的範圍是:
原碼:-127~+127
反碼:-127~+127
補碼:-128~+127
原碼、反碼、補碼,計算機中負數的表示?
12樓:網友
先把數轉化成二進位,負數符號位為1正數0,此為原碼。(如-35的二進位為10100011。注:
第一位為符號位。)原碼轉反碼:符號位為1不變,其餘取反(有)。
反碼轉補碼:反碼加一。(如:
13樓:劉政利
[-0]原=小數點前的數字表示符號,整數用0表示,負數用1表示)[-0]反=負數的反碼為 除符號外,其他位全取反)[-0]補=負數的補碼為反碼加1,在反碼的基礎上再加1以後符號為可能改變)
正數的原碼、反碼、補碼相同,都等於原碼。
14樓:做而論道
計算機中負數,都是用補碼來表示。
原碼、反碼,都是求補碼時的中間過程變數,是寫在紙上的,並不存入計算機。
可以參考:
請教關於計算機資料的傳輸,原碼反碼補碼
數學中的正負數可以用正 負號表示,但在計算機中任何資訊都只能用10表示,所以在計算機中為了表示正負,把一個數的最高位作為符號位,0表示正數,1表示負數,這樣就可以參加運算 例如,用8位2進製表示十進位制 29和 29分別為 00011101和10011101.對於有符號的定點數有3種表示法 原碼,補...
計算機中的數字編碼問題,原碼,反碼,補碼。。RT
某機器數為1000 0000b,若它代表0,則它是 原碼或移碼 形式,若代表 128,則它是 補 碼形式,若代表 127,則它是 反 碼形式 代表0,是原碼。所謂原碼就是二進位制定點表示法,即最高位為符號位,0 表示正,1 表示負,其餘位表示數值的大小。代表 128 是反碼。反碼錶示法規定 正數的反...
計算機的原碼,反碼,補碼是怎麼回事?可以舉例說明嗎
計算機以二進位制補碼儲存資料 以16位機器為例 比如83的二進位制碼為 0000 0000 0101 0011 由於正數的原始碼 反嗎 補碼,上面的既是原始碼,也是反碼和補碼下面通過負數講解原始碼 反碼 補碼之間的關係以 83為例 先求出 83絕對值的原始碼 0000 0000 0101 0011 ...