當前位置:首頁 » 存儲配置 » 補碼存儲

補碼存儲

發布時間: 2022-08-13 02:08:58

『壹』 計算機為什麼採用補碼的形式存儲數據

主要為了便於運算,不管是正負數的補碼,都可以不加任何判斷,直接用同個加法器運算。

『貳』 計算機中的負數為什麼用補碼存儲

計算機中的負數是為了方便運算,所以計算機才會採用補碼存儲數據。補碼是計算機方便加法運算的編碼。例如100(10進制)100/16=6餘46/16=0餘6。所以100的16進制數是64H以8位二進制來說64H=01100100B正數的補碼和原碼相同。
所以100的補碼還是01100100。
另假設還有個數是-109109的16進制,是01101101-109的原碼,就是11101101(首位是符號位)-109的反碼,就是10010010(除了符號位其他各位分別取反)。109的補碼就是10010011(反碼加1)。現在運算100-109=100+(-109)。01100100+10010011=11110111這個結果就是-9的補碼。如果換成其他編碼運算就不會這么簡單了。
例如原碼相加的話存在符號位進位的問題等等。對於計算機而言。數值的計算補碼是最方便的。

『叄』 既然計算機內部數據是以補碼存儲的,為什麼還要有原碼呢原碼和反碼存在的意義是什麼 初學者請教大家

正負數據,只是使用補碼來存放。
計算機中,並沒有原碼和反碼。

正負數,和補碼之間,有個關系式,可以直接互相轉換,並不需要繞道原碼反碼。
原碼和反碼,可以說,一無是處。

『肆』 計算機為什麼使用補碼來存儲數據

補碼的功能,類似於:

時針倒撥 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

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


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

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

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

「取反加一、符號位也能參加運算」,這些,都沒有什麼理論依據。

通過原碼反碼,已經證明「符號位能參加運算」是錯誤的。

補碼能正確運算,並不是什麼「符號位也參加運算」。

因為,補碼,它就是一個正數,什麼符號位也沒有。

補碼的全部位,都是代表數據的,當然就都可以參加運算。

『伍』 為什麼數據在內存里是以補碼的形式存儲

數據在內存里是以補碼的形式存儲的原因有三點:

1、保證了0的唯一性,保證了數的表示的准確性。

2、讓加減可以統一處理,優化了數的運算過程。

3、解決了自身邏輯意義的完整性。

數據在內存里以補碼的形式存儲是為了簡化計算機的結構設計,同時也提高了運算速度。在計算機系統中,數值一律用補碼來表示和存儲。

(5)補碼存儲擴展閱讀:

補碼的主要特性:

補碼為一個負整數(或原碼)與其補數(或補碼)相加,和為模。在補碼的運算中,對一個整數的補碼再求補碼,等於該整數自身。補碼的正零與負零表示方法相同。計算機底層不區分無符號數和補碼數,可認為其運算全部當作無符號數處理。

補碼使得符號位能與有效值部分一起參加運算,從而簡化運算規則。使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計。所有這些轉換都是在計算機的最底層進行的,而在我們使用的匯編、C等其他高級語言中使用的都是原碼。

參考資料來源:網路-補碼

『陸』 為什麼負數要以補碼形式存儲

補碼的功能類似於:時針倒撥 3 小時,與正撥 9 小時,效果相同。

那麼,計算機中的負數,也可以改為正數(即補碼)。

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

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

十進制比較容易理解:

25 - 1 = 24

25 + 99 = (一百) 24。

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

+99 就稱為-1 的補數。

在這里用了 2 位 10 進制。

求補數的演算法:補數 = 負數 + 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,存放的,就是二進制 0000 0000。

十進制數 +1,就加上 1,二進制是 0000 0001。

十進制數 +2,就再加 1,二進制是 0000 0010。

。。。

十進制數 +127,加 1加 1...,就加到了 0111 1111。

+127,這就是最大數。

----------

負數怎麼辦?你就從 0,依次遞減吧。

十進制數 0,以二進制 0000 0000 存放。

十進制數 -1,就減去 1,得 1111 1111 = 255(十進制)。

十進制數 -2,就再減 1,得 1111 1110 = 254。

十進制數 -3,就再減 1,得 1111 1101 = 253。

。。。

十進制數 -128,減 1減 1...,得 1000 0000 = 128。

不要再減了,這就是最小值了。

(你再繼續減,就是 0111 1111,這就是+127 了。)

因此,最小數就是-128。

----------

總結:

零和正數:直接用二進制存放。

負數:存放形式是【256+這個負數】。

這套存放格式,就是所謂的【補碼】。

求【補碼】,就是這么簡單。

完全不用繞到「原碼反碼符號位」那麼遠。

可以用十進制來計算。如果需要二進制,你就再轉換一下。

用這個方法,不涉及原碼反碼符號位,就少了不少麻煩事。

----------

為什麼負數用補碼存儲?

利用補碼,可以把減法運算,轉換成加法。

(所以,在計算機中,有一個加法器,就夠用了。)

例如:6-2 = 4,用補碼運算如下:

6 的補碼是 0000 0110

+-2 的補碼是 1111 1110

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

(1)0000 0100 (= 4 的補碼)

(括弧中的 1,是進位,舍棄不要了。)

注意:

如果運算結果超出了-128~+127 的范圍,結果將是錯的。

這種現象稱為「溢出」。

再注意一下:進位,並不等於溢出。

---------

因為補碼的這個特性,所以,在計算機中,只是使用補碼存放數據。

原碼反碼,在計算機中,都是不存在的。

原碼反碼 的用途,僅僅是用於「心算、筆算」。

其實,筆算的方法,並非只有「取反加一」。

另外,-128,有補碼,但是卻沒有原碼反碼!

用「取反加一」來求-128 的補碼,無異於緣木求魚。

所以,大家,完全不必在原碼反碼 上浪費時間精力。

但是,考試怎麼辦?

呃 ...,還是別跟老師較勁,他怎麼講,你就怎麼答吧。

『玖』 關於匯編里數據(補碼)的存儲問題!

用匯編語言編程,-10,或
246,都是編譯
F6H,再存儲到計算機。
計算機,不管它是
-10,還是
246,它就是《存著》而已。
這個數字,就等著你來編寫指令來處理。
你使用了無符號的數據處理方法,計算機就拿它當做
246。
你使用了有符號的數據處理方法,計算機就拿它當做
-10。

『拾』 計算機為什麼用補碼存儲數據

補碼的功能,類似於:

時針倒撥 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

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

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

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

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

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

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

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

熱點內容
壓縮包暴力破解器 發布:2024-04-24 13:21:46 瀏覽:279
微信對接配置要注意哪些 發布:2024-04-24 13:12:27 瀏覽:656
演算法推薦分類 發布:2024-04-24 13:11:46 瀏覽:803
思域十一代選哪個配置 發布:2024-04-24 13:11:46 瀏覽:368
iso資料庫 發布:2024-04-24 13:05:09 瀏覽:160
it的編程語言有哪些 發布:2024-04-24 13:01:05 瀏覽:613
劉殺雞錄像廳的密碼是多少 發布:2024-04-24 13:01:04 瀏覽:736
蒼天腳本 發布:2024-04-24 13:00:59 瀏覽:402
我的世界伺服器查詢ip 發布:2024-04-24 13:00:53 瀏覽:20
詳細設計存儲分配 發布:2024-04-24 12:59:51 瀏覽:753