1樓:四舍**入
這是規定。
補碼是為負數想出來的辦法,目的是減法可以用加補碼的方法實現,補碼可用反碼加1得來,於是又有了負數的反碼。
計算機裡有硬體「加法器」,有了補碼,減法也可以用加法器做了,計算機裡運算速度硬體遠快於軟體,這就是反碼,補碼和原碼多樣化的原因。
2樓:做而論道
正數的原碼=反碼=補碼,這是規定的,不是算的。
如果,問的是負數,可以參考:
3樓:匿名使用者
正數的補碼是其本身,負數的補碼為原碼取反再加1
4樓:自考生
我的天,正數的補碼還需要算嗎...如果不是二進位制你就算出它的二進位制數。大哥,看下書吧。正數的補碼就是其本身....
5樓:匿名使用者
你真的不想死記住嗎???
說白了,補碼反碼就是為了簡化減法而來的,將減號化為負數
再將負數化為補碼求加法
跟正數沒關係
不管是正整數還是正小數,原碼,反碼,補碼都全部相同
數值在計算機中表示形式為機器數,計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的是十進位制,"正如亞里士多德早就指出的那樣,今天十進位制的廣泛採用,只不過我們絕大多數人生來具有10個手指頭這個解剖學事實的結果.儘管在歷史上手指計數(5,10進位制)的實踐要比二或三進位制計數出現的晚."(摘自《數學發展史》有空大家可以看看哦~,很有意思的).
為了能方便的與二進位制轉換,就使用了十六進位制(2 4)和八進位制(23).下面進入正題.
數值有正負之分,計算機就用一個數的最高位存放符號(0為正,1為負).這就是機器數的原碼了.假設機器能處理的位數為8.即字長為1byte,原碼能表示數值的範圍為
(-127~-0 +0~127)共256個.
有了數值的表示方法就可以對數進行算術運算.但是很快就發現用帶符號位的原碼進行乘除運算時結果正確,而在加減運算的時候就出現了問題,如下: 假設字長為8bits
( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10
(00000001)原 + (10000001)原 = (10000010)原 = ( -2 ) 顯然不正確.
因為在兩個整數的加法運算中是沒有問題的,於是就發現問題出現在帶符號位的負數身上,對除符號位外的其餘各位逐位取反就產生了反碼.反碼的取值空間和原碼相同且一一對應. 下面是反碼的減法運算:
( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10
(00000001) 反+ (11111110)反 = (11111111)反 = ( -0 ) 有問題.
( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = ( -1 )10
(00000001) 反+ (11111101)反 = (11111110)反 = ( -1 ) 正確
問題出現在(+0)和(-0)上,在人們的計算概念中零是沒有正負之分的.(印度人首先將零作為標記並放入運算之中,包含有零號的印度數學和十進位制計數對人類文明的貢獻極大).
於是就引入了補碼概念. 負數的補碼就是對反碼加一,而正數不變,正數的原碼反碼補碼是一樣的.在補碼中用(-128)代替了(-0),所以補碼的表示範圍為:
(-128~0~127)共256個.
注意:(-128)沒有相對應的原碼和反碼, (-128) = (10000000) 補碼的加減運算如下:
( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10
(00000001)補 + (11111111)補 = (00000000)補 = ( 0 ) 正確
( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = ( -1 )10
(00000001) 補+ (11111110) 補= (11111111)補 = ( -1 ) 正確
所以補碼的設計目的是:
⑴使符號位能與有效值部分一起參加運算,從而簡化運算規則.
⑵使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計
所有這些轉換都是在計算機的最底層進行的,而在我們使用的彙編、c等其他高階語言中使用的都是原碼。看了上面這些大家應該對原碼、反碼、補碼有了新的認識了吧!
下文出自
容我問句:「你想死記還是想搞清楚?」
如果你真想搞清楚,請繼續堅持,將來一定很了不起!
~~~~~~~~~~~~~~~~~~~~~~有看不懂的隨時來問。
怎麼求補碼的原碼?
6樓:橘子閃爍
已知一個數的補碼,求原碼的操作其實就是對該補碼再求補碼:
1、如果補碼的符號位為「0」,表示是一個正數,其原碼就是補碼。
2、如果補碼的符號位為「1」,表示是一個負數,那麼求給定的這個補碼的補碼就是要求的原碼。
例如:已知一個補碼為11111001,則原碼是10000111(-7)。因為符號位為「1」,表示是一個負數,所以該位不變,仍為「1」。
其餘七位1111001取反後為0000110;再加1,所以是10000111。
7樓:狼道刀
以補碼10010110為例,有兩種計算方法求原碼:
演算法1:
補碼=原碼取反再加1的逆運算。
10010110是補碼,應先減去1變為反碼,得10010101;
由反碼取得原始碼即除符號位外其他為按位取反,得11101010,即十進位制數的-106。
演算法2:
負數補碼速演算法,由最低位(右)向高位(左)查詢到第一個1與符號位之間的所有數字按位取反的逆運算
10010110是補碼,符號位與最後一個1之間的所有數字按位取反,得11101010
擴充套件資料
計算機系統中的補碼和原碼:
在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。
原碼(true form)是一種計算機中對數字的二進位制定點表示方法。原碼錶示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:
+0和-0),其餘位表示數值的大小。原碼不能直接參加運算,可能會出錯。
例如數學上,1+(-1)=0,而在二進位制中00000001+10000001=10000010,換算成十進位制為-2。顯然出錯了。
8樓:炸毛什造
已知一個數的補碼,求原碼的操作分兩種情況:
(1)如果補碼的符號位為「0」,表示是一個正數,所以補碼就是該數的原碼。
(2)如果補碼的符號位為「1」,表示是一個負數,求原碼的操作可以是:符號位為1,其餘各位取反,然後再整個數加1。
例如,已知一個補碼為11111001,則原碼是10000111(-7):因為符號位為「1」,表示是一個負數,所以該位不變,仍為 「1」;其餘7位1111001取反後為0000110;再加1,所以是10000111。
9樓:美食藝術
補碼的運算:聽老師講解真值、原碼、反碼和補碼
10樓:
9碼的原始碼他們這些人馬,數值對比都是有很大的差距。
11樓:沙裡波特
對於二進位制數來說,取反加1、減1取反,結果是完全相同的。
所以,可以使用同樣的方法來做。
甚至,求補碼時,你也可以用「減1取反」,一點也沒毛病。
12樓:藍雨
補碼的補碼就是原碼!
帶符號數中只有負數的原碼反碼和補碼是不一樣的,正數的這些都是一樣的,涉及碼制轉換!
原碼求補碼是取反加1
補碼求原碼還是是取反加1(符號位除外)
13樓:匿名使用者
有符號數,最高位為1的話除最高位之外取反加1即為原始碼,正數不變
14樓:匿名使用者
如果是帶符號的數,那麼看它的最高位,如果是1,則是負數,符號位不變,減一後取反碼。
是正數就不變。它的補碼就是它的原始碼
原碼=補碼-1後的反碼
15樓:匿名使用者
就是對補碼求補碼,你可以試試!
對於正數,其原碼、反碼、補碼是相同的嗎
16樓:丶兔牙媽媽
相同的,正數的原碼=反碼=補碼。引進補碼的作用是為了讓計算機更方便做減法。
例如:按時間12個小時來算,現在的準確時間是4點,有一個表顯示的是7點,如果要校準時間,我們可以將時針退7-4=3格,也可以向前撥12-3=9格,計算機做減法就可以轉化成-3=+9,這樣可以簡化計算機的硬體裝置去做複雜的減法。
然而得到補碼的定義:正數時仍為正,而負數x求補要從2減去|x|。本就為了簡化減法引進的補碼,結果在求補的過程中還是出現減法。
這樣,再引進了反碼錶示法方便求補。補碼反碼就是為了簡化減法而來的,將減號化為負數,再將負數化為補碼求加法,跟正數沒關係。所以不管是正整數還是正小數,原碼,反碼,補碼都全部相同。
原碼是一種計算機中對數字的二進位制定點的表示方法。原碼是指一個二進位制數左邊加上符號位後所得到的碼,且當二進位制數大於0時,符號位為0;二進位制數小於0時,符號位為1;二進位制數等於0時,符號位可以為0或1。原碼是有符號數的最簡單的編碼方式,便於輸入輸出,但作為**加減運算時較為複雜。
數值位表示真值的絕對值。凡不足n-1位的,小數在最低位右邊加零;整數則在最高位左邊加零以補足n-1位。**中的小數點」.
」是在書寫時為了清晰起見加上去的,在機器中並不出現。
補碼在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。
計算機中的符號數有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示「正」,用1表示「負」,而數值位,三種表示方法各不相同。對於計算機,其概念和方法完全一樣。
n位計算機,設n=8,所能表示的最大數是11111111,若再加1成為100000000(9位),但因只有8位,最高位1自然丟失。又回了00000000,所以8位二進位制系統的模為2^8。在這樣的系統中減法問題也可以化成加法問題,只需把減數用相應的補數表示就可以了。
把補數用到計算機對數的處理上,就是補碼。
反碼是數值儲存的一種,但是由於補碼更能有效表現數字在計算機中的形式,所以多數計算機都不採用反碼錶示數。
對於正數,其原碼 反碼 補碼是相同的嗎
相同的,正數的原碼 反碼 補碼。引進補碼的作用是為了讓計算機更方便做減法。例如 按時間12個小時來算,現在的準確時間是4點,有一個表顯示的是7點,如果要校準時間,我們可以將時針退7 4 3格,也可以向前撥12 3 9格,計算機做減法就可以轉化成 3 9,這樣可以簡化計算機的硬體裝置去做複雜的減法。然...
平碼如何算出來的,四個平碼如何算出來的
注 圈裡面的數字表示平碼的個數 二中二 計算方法如下 個號1組 個號3組 3 2 2 3組 個6組 4 3 2 6組 個10組 5 4 2 10組 個15組 6 5 2 15組 個21組 7 6 2 21組 個28組 8 7 2 28組 個36組 9 8 2 36組 個45組 10 9 2 45組 ...
利潤如何核算出來的
假定消費者同樣是購買一件價值100元的商品,對於商家來說以上三種方式的應納稅情況及利潤情況如下 暫不考慮城建稅和教育費附加 1.商品7折銷售,價值100元的商品售價70元 應繳增值稅額 70 1 17 17 60 1 17 17 1.45 元 利潤額 70 1 17 60 1 17 8.55 元 應...