1樓:做而論道
整數(正整數、負整數、零),是以各種**,存入計算機的。
要知道,天下蠢陸裂,只有乙個零。
零,既不是正數,也不是負數。 這可是小學的知識。
但是,計算機磚家,硬在零上強加了乙個符號位!
於是,在原碼反碼中,就都為乙個零,編造了兩個**。
這些磚家,這就是要「上天」哪!
零的原碼,有兩個 0000。
反碼,也是兩個 1111。
原碼和反碼,都是重複定義了「零的編碼」,這就造成了混亂。
而且,零多佔用一組**,那麼,所能表示的數字,必然就少乙個。
所以,八位的原碼反碼,都不能表示-128。
這就導致了:【原碼和反碼,計算機都無法使用】。
所以,在計算機系統中,數值,一律採用補碼來表示和儲存。
補碼的理論,**於數學的規律,並非是人為的胡編亂造。
0 的八位補碼,只有乙個,就是:0000 0000。
零,在補碼中,悉拍只用唯一的一組**來表示,這就不會產生混亂。
求補碼,書上介紹的方法,就是:取反加一。
但是,原碼反碼中,都是沒有 0 和-128。
雖然原碼反碼都有 +0 和-0,但是它們畢竟不是 0。)
誰再想用「取反加一」,就要 duang、duang 的碰壁了。
那麼,0 和-128 的補碼,都是怎麼求出來的?
補碼,有自己的定義式,與原碼帶閉反碼,並無關係。
這定義式,是由數學理論推匯出來的,要比胡說八道的「取反加一」更準確嚴密。
當 x >=0: [x ]補碼 = x;
當 x < 0: [x ]補碼 = x + 2^n, n 是補碼的位數。
按照定義式,0 和-128 的八位補碼,都可以求出來了。
[ 0 ]補碼 = 0000 0000。
[-128]補碼 = 128 + 2^8 = 128 = 1000 0000 (二進位)。
如果按照「取反加一」,零的補碼,也將是「負零的反碼+1」。
那麼,[-0 ]補碼,就是:0000 0000!
有點詭異呀?
-0,不是負數嗎? 其補碼的符號位。怎麼是正的!
哪位計算機磚家來解釋解釋。。。
2樓:天羅網
如果是在字長為8位的盯枯計算機上,0的原碼是00000000 -0的原碼是10000000
0的旅橋反碼是00000000 -0的反碼是11111111
0和-0的補碼均為凱鎮洞00000000
+0或者-0的原始碼、反碼、補碼分別是什麼?補碼是一樣的嗎?
3樓:冠一虞澤惠
0原碼是00000000
0原碼是10000000
0反碼是00000000
0反碼是11111111
0補碼是00000000
補碼沒有正0與負0之分。
正數的反碼、補碼和其原碼相同負數的反碼是其原碼除符號位外其他位取反負數的補碼是取其反碼後加1
77原碼和補碼,反碼分別是多少
計算機中,只是使用補碼,並不使用原碼和反碼。原碼和反碼,都是沒有任何用處的。正數,本身就是補碼。負數,用它的正數,減。一 取反,即為補碼。77 的二進位制是 0100 1101。下面求 77 的補碼 先減一 0100 1101 1 0100 1100。再取反,就是 77 的補碼 1011 0011。...
為什麼正數的原碼反碼和補碼是一樣的??
帶符號數,有三種表示方法,即 原碼 反碼和補碼 但是,在計算機系統中,數值一律用 補碼 來表示和儲存。所以,在計算機系統中,原碼和反碼。都是不存在的。使用補碼的意義 可以把減法或負數,轉換為加法運算。藉此方法,就能簡化計算機的硬體。十進位也有類似的演算法,如 捨棄進位,這兩種演算法,功能就相同。由此可見...
十進位制數 85,求原碼,反碼和補碼,用8位來表示
汲嘉言樓雯 一個位元組表示是什麼意思?就是用8 位二進位制數表示。8位二進位制數的原碼,可以表示十進位制數 127 127。如3的原碼 0000 0011。8位二進位制數的反碼,可以表示十進位制數 127 127。如3的反碼 0000 0011。8位二進位制數的補碼,可以表示十進位制數 128 12...