1樓:yangzhi涯
8位字長原碼錶示的有符號定點小數真值範圍: ,即: -127d/128)d ~ 127/128)d。
8位字長補碼錶示的有符號定點小數範圍: ~即: -1d ~ 127/128)d。
補碼的一些資訊:
補碼(2's complement)是一種用二進位制表示有號數的方法,也是一種將數字的正負號變號的方式,常在電腦科學中使用。在臺灣地區通常稱為二補數。
一個數字的補碼就是將該數字作位元反相運算(即一補數或反碼),再將結果加 1,即為該數字的補碼。在補碼系統中,一個負數就是用其對應正數的補碼來表示。
補碼系統的最大優點是可以在加法或減法處理中,不需因為數字的正負而使用不同的計算方式。只要一種加法電路就可以處理各種有符號數加法,而且減法可以用一個數加上另一個數的補碼來表示,因此只要有加法電路及補碼電路即可完成各種有號數加法及減法,在電路設計上相當方便。
另外,補碼系統的 0 只有一個表示方式,這點和一補數系統不同(在一補數系統中,0 有二種表示方式),因此在判斷數字是否為 0 時,只要比較一次即可。
2樓:做而論道
在計算機系統中,數值,一律採用補碼錶示和儲存。
計算機,並不使用原碼和反碼。
在計算機中,原碼和反碼,也都不存在。
討論原碼反碼,又有什麼意義呢?
補碼,其實,它就是一個【代替負數】的正數。
使用了補碼之後,在計算機中,就沒有負數了。
順便,也就消除了減法運算。
那麼,計算機只需配置一個加法器,就可以走遍天下了。
補碼(即一個正數),怎麼就能【代替負數】呢?
理論基礎在於:計數系統的週期性。
比如,2 位 10 進位制數(0~99),計數週期就是 10^2 = 100。
那麼: 25 - 1 = 24
25 + 99 = 一百) 24
只要你:捨棄進位,僅保留 2 位數,+99 就能代替-1。
同理,+98 也能代替-2。
這些正數,就可以稱為「負數的補數」。
變換公式: 負數的補數 = 負數 + 週期。
另外還有:時針,週期是 12,倒撥 3小時、正撥 9小時,等效吧?
三角函式的週期是 2π,-2、+3π/2,正、負角度,也等效。
這些負數變正數,公式都是: 正數 = 負數 + 週期。
反之,也成立,即: 負數 = 正數 - 週期。
計算機中,8 位 2 進位制數,週期就是 2^8 = 256。
-1 的補碼,就是:-1 + 256 = 255 = 1111 1111(二進位制)。
2 的補碼,就是:254 = 1111 1110(二進位制)。
求補碼,用「負數+週期」,直接就能求出補碼。
不必經過「原碼反碼取反加一符號位不變」。
數學不好的老外,才需要弄哪些騷操作!
只有負數,才需要變換成補碼(正數)。
正數,不需要變換,也不允許變換,必須直接去相加運算。
所以,正數,它就沒有補碼。
有人說:正數的。。。都相同。
這就是被老外帶到溝裡去了。
原碼反碼,在計算機中,都是不存在的,哪還有什麼相同!
原碼和補碼是什麼意思
3樓:沙裡波特
原碼,沒有任何意義。
補碼具有:用正數代替負數,把減法變成加法運算的功能。
這樣,計算機中,只需用一個加法器,便可進行加減運算了。
所以,在計算機中,只是使用補碼。根本就不用原碼和反碼。
對於鐘錶,倒撥 4 小時,可用正撥 8 小時代替。
對於十進位制數,減一,可以用 +99 代替。
比如:24-1 = 23
忽略進位,只取低兩位,結果就是相同的。
這裡用來代替負數的正數,就叫做「補數」。
計算機用二進位制,就叫做「補碼」。
正數,直接運算即可,不用求補碼。
負數的補碼是:模+該負數。
八位二進位制的模是:2 的 8 次方=256。
1 的補碼,就是:256-1 =255 = 1111 1111(二進位制)。
2 的補碼,就是:256-2 =254 = 1111 1110(二進位制)。
128 的補碼,就是:256-128 =128 = 1000 0000(二進位制)。
求補碼,用公式就可得出,並不需要繞道原碼反碼符號位。
4樓:歷媚琴易文
原碼就是直接轉化為二進位制的。補碼是帶符號位的表示,對於正數是沒有區別的,對於負數是不一樣的。比如。-1,用8位表示的補碼就是11111111
為什麼要使用原碼,反碼,補碼
5樓:沙裡波特
哪有什麼原碼、反碼!
在計算機中,只使用補碼來存放正負數。
計算機中,以八個二進位制位,作為一個位元組。
數字 0,存放的補碼,就是 0000 0000。
正數,依次遞增,即可:
數字 +1,其補碼就是 0000 0001。
數字 +2,其補碼就是 0000 0010。
負數,就是依次遞減:
數字-1,就是 0000 0000-1 = 1111 1111。
數字-2,就是 1111 1111-1 = 1111 1110。
歸納:正數的補碼,就是:數字本身。
負數的補碼,就是:0 + 該負數。
比如:+9 的補碼是:0000 1001。
9 的補碼是:0000 0000-0000 1001=1111 0111。
求補碼的計算過程,並不需要原碼反碼。
有了補碼,就可以用加法,代替減法運算了。
比如:(+2)-(1) =1。
計算機計算如下:
6樓:匿名使用者
計算機只能識別0和1,使用的是二進位制。而在日常生活中人們使用的是十進位制,並且我們用的數值有正負之分。於是在計算機中就用一個數的最高位存放符號(0為正,1為負)。
這就是機器數的原碼了。
有了數值的表示方法就可以對數進行算術運算,但是很快就發現用帶符號位的原碼進行乘除運算時結果正確,而在加減運算的時候就出現了問題,如下:假設字長為8bits
0 0000001)原 + 1 0000001)原 = 1 0000010)原 = 2 ) 顯然不正確。
因為在兩個整數的加法運算中是沒有問題的,於是就發現問題出現在帶符號位的負數身上。對除符號位外的其餘各位逐位取反就產生了反碼。反碼的取值空間和原碼相同且一一對應。
下面是反碼的減法運算:
0 0000001)反 + 1 1111110)反 = 1 1111111)反 = 0 ) 有問題。
0 0000001)反 + 1 1111101)反 = 11111110)反 = 1) 正確。
問題出現在(+0)和(-0)上,在人們的計算概念中零是沒有正負之分的。(印度人首先將零作為標記並放入運算之中,包含有零號的印度數學和十進位制計數對人類文明的貢獻極大)。
於是就引入了補碼概念。負數的補碼就是對反碼加一,而正數的補碼不變,正數的原碼反碼補碼是一樣的。在補碼中用(-128)代替了(-0),這個是人為規定的,所以補碼的表示範圍為:
128~0~127)共256個。
注意:(-128)沒有相對應的原碼和反碼, (128) =1 0000000) 補碼的加減運算如下:
0 0000001)補 + 1 1111111)補 = 0 0000000)補 = 0 ) 正確。
00000001)補 + 11111110)補 = 11111111)補 = 1) 正確。
所以補碼的設計目的是:
使符號位能與有效值部分一起參加運算,從而簡化運算規則。補碼機器數中的符號位,並不是強加上去的,是資料本身的自然組成部分,可以正常地參與運算。
使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計。
所有這些轉換都是在計算機的最底層進行的,而在我們使用的彙編、c等其他高階語言中使用的都是原碼。
什麼是原碼、反碼、補碼?
7樓:京安嫻邸暢
1):補碼加法公式。
x+y]補。
x]補。[y]補。
2):補碼減法公式。
x-y]補。
x]補-[y]補。
x]補。[-y]補。
其中:[-y]補稱為負補,求負補的辦法是:對補碼的每一位(包括符合位)求反,且未位加1.
8樓:沙裡波特
計算機中,只有補碼,沒有原碼反碼。
只要掌握了補碼,即可。
小數補碼的定義式:
x]補 = x ; 0 ≤ x < 1[x]補 = 2+x ; 1 ≤ x < 0例如:x = 1000, 則 [x]補 = 0010 1000。
x = 1000, 則 [x]補 = 1100 1000。
原碼反碼補碼有什麼用
9樓:沙裡波特
使用補碼,可以把減法轉換成加法運算,從而簡化硬體。
原碼和反碼,都沒有這種功能,所以,在計算機中,並不使用原碼和反碼。
因此,原碼和反碼,沒有任何用處。
對於兩位十進位制數,減一,可以用 +99 代替。
忽略進位,只取兩位結果,這兩種演算法,功能就是相同的。
99,就稱為:「-1 的補數」。 99 = 100-1。
對於二進位制,就稱為:補碼。-1 的八位補碼是:256-1 = 255 = 1111 1111(二進位制)。
藉助於補數,就能用加法,代替減法運算。
這就是補碼的用處。
原碼,反碼,補碼的定義是什麼。
10樓:沙裡波特
有符號數,有三種表示方法,即原碼、反碼和補碼。
但是,在計算機系統中,數值一律用補碼來表示和儲存。
所以,在計算機系統中,原碼和反碼,都是不存在的。
想要理解補碼,要先從補數開始。
鐘錶的時針轉一圈,週期是 12 小時。
倒撥 3 小時,就可以用正撥 9 小時代替。
9 就是-3 的補數。 9 = 12-3。
同理,分針倒撥 x 分,就可以用正撥(60-x)代替。
60 是分針的週期。
對於兩位十進位制 0~99,週期就是一百。
這時,減一,你就可以用 +99 代替。
結果取兩位,捨棄進位。這兩種演算法,功能就是相同的。
99,就稱為-1 的補數。
98,就是-2 的補數。
負數的補數 = 週期 + 該負數。
利用補數,就可以用加法,代替減法運算。
正數,不需要求補數。
計算機使用二進位制,補數,就改稱:補碼。
八位二進位制,共有 256 個數字。負數的補碼 = 256+該負數。
16 位二進位制,共有 2^16 個數字。負數的補碼 = 65536+ 該負數。
這就是補碼的定義式。在你的書上,一定能找到這種算式。
在八位時:1 的補碼是:256-1 = 255 = 1111 1111(二進位制)。
2 的補碼是:254 = 1111 1110。
3 的補碼是:253 = 1111 1101。
128 補碼:128 = 1000 0000。
有了補碼,計算機僅需要一個加法器,就可以加減通用了。
而原碼和反碼,不具備這種能力。
所以,原碼和反碼,究竟是怎麼定義,就不必關心了。
因為,它們,毫無用處。
原碼,反碼,補碼是什麼補碼,原碼,反碼什麼的。有什麼作用啊!
正數的原碼,補碼,反碼相同,先求原碼,因為正數的原碼就是他的真值。負數的原碼是在正數的原碼基礎上,最高位置1,即符號位。然後再求反碼 符號位1不變,後面的所有位取反,然後再求補碼 在反碼的基礎上,末尾加1 注意負數的反碼,補碼除了符號位外也不是該負數的真值,而是原碼的除了最高位後面的數是真值的絕對值...
原碼 反碼 補碼的基本概念,原碼 反碼和補碼錶示的規則分別是什麼?
原碼 一個整數,按照絕對值大小轉換成的二進位制數,稱為原碼。比如00000000 00000000 00000000 00000101是5的 原碼。反碼 將二進位制數按位取反,所得的新二進位制數稱為原二進位制數的反碼。取反操作指 原為1,得0 原為0,得1。1變0 0變1 比如 將00000000 ...
1的原碼,補碼,反碼是什麼0,1,1的原碼反碼補碼是什麼?8位二進位制整數
1 原碼錶示法 原碼錶示法是機器數的一種簡單的表示法。其符號位用0表示正號,用 表示負號,數值一般用二進位制形式表示。設有一數為x,則原碼錶示可記作 x 原。例如,x1 1010110 x2 一1001010 其原碼記作 x1 原 1010110 原 01010110 x2 原 1001010 原 ...