導航:首頁 > 數據處理 > 機器數據補碼為什麼是唯一的

機器數據補碼為什麼是唯一的

發布時間:2022-11-12 14:18:01

Ⅰ 註:數0的補碼表示是唯一的: +0的補碼=+0的反碼=+0的原碼=00000000 -0的補碼=11111111+1=00000000(mod 2

正數的原碼,反碼,補碼都是一樣的,0的原碼和反碼都有兩個,但是0的補碼是唯一的。

負數的原碼是機器字長的首個數值位為1;反碼是原碼除首位為1外,其他數值取反,(1變成0,0變成1);補碼就是反碼再加1。
假設機器字長8位,則
-0的原碼1000,0000, -0的反碼就是1111,1111,-0的補碼就是反碼加1後變成1,0000,0000,首位溢出後拋棄,變成-0的補碼還是0000,0000。
個人感覺有+0和-0才會出現混亂,數學上的1+(-1)=0,那到計算機里應該是-0還是+0啊,(反正自己沒法理解+0和-0),最後只能用補碼來進行負數的計算,結果才會正確。

Ⅱ 整數0的補碼為什麼只有一種形式000……0

0的原碼是不惟一的:[+0]原=00000000,[-0]原=10000000
0的反碼也是不惟一的:[+0]反=00000000,[-0]反=11111111
與原碼和反碼不同,0的補碼是惟一的,這可由補碼的定義得到。對於n=8,有
[+0]補 = [+0]反 = [+0]原 = 00000000
[-0]補 = [-0]反 + 1 = 11111111 + 1 = 00000000(mod 2的8次方)
即對8位字長來講,最高位的進位(2的8次方)按模256運算被舍掉,所以[+0]補=[-0]補

Ⅲ 補碼到底是怎麼一回事

在計算機系統中,數值,一律用補碼來表示和存儲。

補碼,實際上,就是一個「代替負數」的【正數】。

使用了補碼(正數)之後,在計算機中,就沒有負數了。

隨之而來的就是:減法運算,也都不存在了。

所以,藉助於補碼,計算機只需要配置一個加法器,就能走遍天下。

使用補碼的目的,也就是:簡化計算機的硬體。

---------------------

補碼(一個正數),怎麼就能代替負數呢?

你看時針:倒撥 3 小時,可以用正撥 9 小時代替吧?

你看三角函數:-π/2、+3π/2,兩者的函數值也是相同的吧?

10 進制數,如果限定只用 2 位 ,那麼就會有:

25 - 1 = 24

25 + 99 = (一百) 24

如果忽略進位一百(10^2),+99 就可以代替-1。

上面所說的這些正數,就是「負數的補數」。

求補數的公式,你自己可以推出,即:

補數(即正數)= 負數 + 周期。

正數,必須直接參加運算,不可再做任何變換。

就是說:

正數,本身就已經是正數了,它並不存在什麼補數。

---------------------

計算機用二進制,補數,那就稱為「補碼」了。

8 位 2 進制的周期,是:2^8 = 256。

-1 的補碼,就是:-1 + 256 = 255 = 1111 1111(二進制)。

-2 的補碼是:-2 + 256 = 254 = 1111 1110。

。。。

-128 的補碼,就是:128 = 1000 0000。

---------------------

至此,你就可以推出「補碼的定義式」:

當 X >= 0, [ X ]補 = X; 零和正數不用變換。

當 X < 0, [ X ]補 = X + 2^n。n 是補碼的位數。

這是通用的公式。

---------------------

計算 5 - 7 =-2,用八位補碼計算如下:

5=0000 0101

[-7]補碼 =1111 1001

--相加-----------

得:(1)1111 1110= [-2]補碼

舍棄了進位,結果,就是正確的。

Ⅳ 計算機中的所有數字都是用補碼來表示嗎

不是,只有有符號數才用補碼表示。比如8位有符號數表示範圍是-128~127,而無符號數就可以表示0~255。計算機採用補碼是為了有符號數中0的表示的唯一性,並且可以把減法轉換成加法來運算。除了數字,計算機中還有很多其他的數據,比如說字元等,這些都不用補碼表示。

Ⅳ 計算機為什麼用補碼存儲數據

使用補碼的好處:
1.
可加法代替減法運算,[a-b]補
=
[a]補+[-b]補
簡體了計算機運算硬體電路,提高運算效率:
2.
統一了正0和負0
原碼及反碼的正0、負0有不同的表示,補碼的0是唯一的,
例如字長8位,補碼的0表示為唯一的00000000

Ⅵ 為什麼在機器數補碼中,零的表示是唯一的。

對於(+0)和(-0),在人們的計算概念中零是沒有正負之分的.(印度人首先將零作為標記並放入運算之中,包含有零號的印度數學和十進制計數對人類文明的貢獻極大).

於是就引入了補碼概念. 負數的補碼就是對反碼加一,而正數不變,正數的原碼反碼補碼是一樣的.在用位元組表示時補碼中用(-128)代替了(-0),所以用位元組表示的補碼的范圍為:

(-128~0~127)共256個.

注意:(-128)沒有相對應的原碼和反碼。

Ⅶ 請問計算機的補碼總為什麼0有唯一的補碼,即[+0]=[-0]=00000000[-0]不應該不是這樣嗎

貌似是因為計算機中沒有+0和-0的區別。拿8位機舉例:如果有正零和負零的區別的話計算機一位的長度只能表示-127~+127共255個數,但是如果把1000,0000即我們認為的-0判斷成+128就能多表示一個數。為了功能更強大,所以設計人員讓計算機內部就不區別+0,-0所以也就不存在-0這個東東,所以0的補碼是唯一的也就是+0的補碼.

Ⅷ 計算機為什麼用補碼存儲數據

補碼的功能,類似於:

時針倒撥 3 小時,與正撥 9 小時,效果相同。

利用這種思路,計算機中的負數,也可以改為正數(即補碼)。

同時,減法運算,也就可以用加法運算代替了。

那麼,藉助於補碼,就能統一加減法,夠簡化計算機的硬體。

十進制比較容易理解:

25 - 1 = 24

25 + 99 = (一百) 24。

只要忽略進位,+99 就能代替-1。

+99 就稱為-1 的補數。

在這里用了 2 位 10 進制。

求補數的演算法:補數 = 負數 + 10^2。

通用的公式是:補數 = 負數 + 10^n。n 是位數。

-----------------------

計算機用二進制,補數,就改名為:補碼。


一個位元組,是 8 位 2 進制。

計數范圍是:0000 0000 ~ 1111 1111(十進制 255)。

計數周期是:2^8 = 256。


求補碼的演算法:負數的補碼=負數+2^n。

那麼:

-1 的補碼=-1 + 256 = 255 = 1111 1111。

-2 的補碼=-2 + 256 = 254 = 1111 1110。

。。。


例如,7-2 = 5,用補碼計算如下:

7 =0000 0111

[-2] 補 =1111 1110

---相加------------

得:(1)0000 0101= 5

舍棄進位,結果就完全正確。

藉助於補碼,負數就沒有了,從而就把「減法轉換為加法運算」。

-----------------------

補碼的來源,與原碼反碼毫無關系。

「原碼反碼取反加一、符號位也能參加運算」...

這些,都沒有什麼理論依據。

從「取反加一」來學習補碼,就弄不清楚「為什麼用補碼」。

Ⅸ 為什麼「對於真值0,源碼有兩種不同的表現形式,而補碼卻只有唯一的一種表現形式.」

0可以是+0,也可以是-0
0的原碼為:10000(-0),00000(+0)
+0的補碼和原碼相同,為00000
-0的補碼是在-0的原碼(10000)的基礎上,符號位不變,其它位按位取反再在低位加1(11111+1=00000),進而得到-0的補碼00000
所以補碼表示0隻有一種情況00000.而原碼則表示了兩次,分別為10000和00000.
希望可以幫到你,謝謝!

閱讀全文

與機器數據補碼為什麼是唯一的相關的資料

熱點內容
中科院深圳先進技術研究院什麼級別 瀏覽:297
交易盈利怎麼操作 瀏覽:553
商丘學小吃技術去哪裡 瀏覽:449
貨幣前三是什麼交易所 瀏覽:472
如何代理新款酒 瀏覽:578
信息量大不敢想像怎麼辦 瀏覽:871
發信息拒收了怎麼回事 瀏覽:348
亞太財險旗下代理公司有哪個 瀏覽:787
剛體轉動數據保留多少位 瀏覽:40
微信上的配樂朗誦小程序叫什麼 瀏覽:837
國際貨運代理的經營范圍包括哪些 瀏覽:570
收銀機的程序在哪裡 瀏覽:982
太原綜合市場是什麼意思 瀏覽:226
瀏覽器移動數據很慢為什麼 瀏覽:526
資料庫欄位對應的實體類怎麼寫 瀏覽:96
連鎖市場規劃如何列名單 瀏覽:403
為什麼給客戶配置存款產品 瀏覽:693
工業信息局是什麼編制 瀏覽:137
小漁市場怎麼樣 瀏覽:873
如何用婉轉的話說老公不回信息 瀏覽:965