當前位置:首頁 » 存儲配置 » 存儲器里存的都是補碼

存儲器里存的都是補碼

發布時間: 2022-05-20 05:08:30

1. 什麼是一個數的原碼,反碼,補碼

原碼,反碼,補碼針對的是定長二進制存儲器表示的有符號整數。
正數的原碼,反碼,補碼都相同。
負數的原碼最高位為1,其他位為整數的絕對值(零有+0、-0之分)。
負數的反碼最高位為1,其他位為整數的絕對值按位取反(零有+0、-0之分)。
負數的補碼最高位為1,其他位為整數的絕對值按位取反再加一(零沒有+0、-0之分,最常用)。
比如-1的原碼為0x80000001,反碼為0xFFFFFFFE,補碼為0xFFFFFFFF。
//---------
在計算絕對值、取反、加一的過程中,無論提升成多少位去計算,最後裝填時,都保留後幾位(符號位以外相應位數)。

2. 存儲器中用來表示存儲位元的形式有哪些

c的char數據屬於基本類型,基本類型其中還包括-整型,實型,枚舉類型! 數據在內存中是以二進制形式存放的。數值是以補碼表示的。 整型: 一個正數的補碼和其原碼的形式相同。而負數的補碼方式是將其絕對值的二進制形式「按位求反再加1」 實型: 在內存中佔4個位元組,是按照指數形式存儲的,實型數據分為小數部分和指數部分,分別存放!計算機用二進製表示小數部分,用2的冪次來表示指數部分! 字元型: 在內存中字元的存儲實際上是把字元相對應的ASCII代碼放到存儲單元中的。而這些ASCII代碼值在計算機中也是以二進制形式存放的。這個與整型的存儲很相似。因此這兩類之間的轉換也比較方便!c的char數據屬於基本類型,基本類型其中還包括-整型,實型,枚舉類型! 數據在內存中是以二進制形式存放的。數值是以補碼表示的。 整型: 一個正數的補碼和其原碼的形式相同。而負數的補碼方式是將其絕對值的二進制形式「按位求反再加1」 實型: 在內存中佔4個位元組,是按照指數形式存儲的,實型數據分為小數部分和指數部分,分別存放!計算機用二進製表示小數部分,用2的冪次來表示指數部分! 字元型: 在內存中字元的存儲實際上是把字元相對應的ASCII代碼放到存儲單元中的。而這些ASCII代碼值在計算機中也是以二進制形式存放的。這個與整型的存儲很相似。因此這兩類之間的轉換也比較方便!

3. 計算機中的數字是不是都是用補碼存放的

數字都是用補碼存放,原因很簡單,只要補碼與數字是一一對應的,
比如用原碼時,正0、0、負0都表示0 所以原碼不是一一對應

4. 關於計算機存儲的是補碼的問題

計算機存儲的都是補碼, 但是正數的補碼跟源碼是一樣的
129的補碼是0000 0000 1000 0001
賦值給s以後會被階段, 變成 1000 0001
這個時候最高位變成了1(最左邊的), 計算機就認為是個負數了, 所以按照負數的補碼看待, 就變成-127了
這個實際上屬於溢出

5. 既然計算機對數值的運算和存儲都是補碼形式,那無符號型數據沒有補碼,怎麼存儲的有點暈。

計算機對數值的運算和存儲都是以補碼形式(這句話沒毛病吧?)
--八位補碼,只有七位表示數值。
那無符號型數據是沒有補碼之說的,怎麼存儲?
--八位,都是數值,沒有正負號。

6. 電腦里的二進制數是以補碼的形式表示的。這怎樣理解呢能舉個例子嗎

在計算機中,對帶符號數可用真值和機器數兩個概念表示。所謂真值,就是帶有「+」、「-」號的實際數值;所謂機器數,則是把「+」、「-」符號數值化後所得到的計算機實際能表示的數。對於帶符號數,在計算機中表示正負號的最簡單方法是約定用
0 表示「+」,用 1 表示「-」。並規定二進制數的最高位作為符號位。機器數有三種碼表示,分別是原碼、反碼和補碼。匯編語言中,數都是以補碼的形式表示的。
正數的補碼與正數的原碼、反碼都一樣,最高位為符號位0,其餘位是數值位。求負數的補碼時,符號位為1,數值位在原碼的基礎上求反加1。
例如:十進制數+5和-5分別表示成二進制數原碼、反碼和補碼。
[+5]原=[+5]反=[+5]補=00000101B=05H
[-5]原=10000101B=85H
[-5]反=11111010B=FAH
[-5]補=11111011B=FBH

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

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

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

8. 為什麼數據在內存里是以補碼的形式存儲正數好理解,就是其本身。負數為何不能直接第一位1表示負,其後

補嗎是為了加減運算才出現的。。。我們都知道如果加一個負數,只要減去他對應的正數即可,
如 3+(-1)=3-1=2
計算機很笨,沒這種思維,他加法就是加法
3+(-3) 如果按你的方法表示負數 結果時 0x03+0x83=0x86 顯然不是0,因為計算機不會把加法變成減法。。。
那另一種就是取補嗎,0x03+0xfd=0x00 這樣就符合運算規則,這就是為什麼要有補嗎,-1 必須要比-2 在代碼上大1,
如果只是把首位變成1 ,那仍然不符合這個規則,0x01 0x02如果只是首位變符號,結論是 0x81 小於 0x82 這就是一個錯誤 -1<-2 不符合邏輯。。。CPU只是個機器,沒有智商可言。。。。
計算機對數字的處理 拋開符號位 00000000必須是最小的數,顯然拿單位元組來說 -128應該全0, 帶上符號那麼就是1000000是自小的數就是-128。。。。 -1+1應該為0 那麼 ff+1=0 所以ff就是-1。。。。

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

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

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

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

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

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

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

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

10. 正數和負數在內存中是以什麼形式存儲的,都是補碼 為什麼呢

是以二進制方式儲存的,既補碼形式,正數前是0,負數前加1

熱點內容
查詢伺服器連接地址 發布:2024-11-15 13:27:20 瀏覽:504
win8用戶文件夾轉移 發布:2024-11-15 13:21:24 瀏覽:73
批量緩存淘寶教育上的視頻 發布:2024-11-15 13:20:44 瀏覽:723
如何確定手機是不是安卓 發布:2024-11-15 13:19:33 瀏覽:734
loadingbuffer怎麼配置 發布:2024-11-15 13:16:57 瀏覽:797
安卓婉兒最低市戰力在哪裡 發布:2024-11-15 13:04:02 瀏覽:852
安卓如何設置圖片模式 發布:2024-11-15 13:00:27 瀏覽:497
機房怎麼用電腦連接伺服器 發布:2024-11-15 12:52:24 瀏覽:561
刪資料庫事件 發布:2024-11-15 12:10:54 瀏覽:457
資料庫選課管理系統 發布:2024-11-15 12:10:15 瀏覽:128