計算機存儲整數

採用定點表示法,也就是假設小數點在最右邊,但是並不存儲。

一、無符號表示法

1.範圍:0 ~ 2n-1(n位存儲空間)
2.步驟:
(1)將整數變爲二進制數
(2)如果二進制數不夠n位,那就在左邊加0湊足n位;如果超過n位則溢出
3.溢出:
例:有4位內存,最多存儲到15,如果我們想再加5,得到結果是20,20=(10100)2,丟掉溢出位1,只剩(0100)2=4,所以溢出後得到的結果是4
4.應用:
(1)計數:計數是不需要負數的
(2)尋址:存儲單元地址都是從0到整個存儲器的總字節數
(3)排序:爲文本、圖像、音頻、視頻類數據類型排序


二、符號加絕對值法

1.範圍:-2n-1+1 ~ -0, +0 ~ 2n-1-1(n位存儲空間)
2.步驟:
(1)將整數絕對值變爲二進制數
(2)最左位填上符號,0表示正數,1表示負數
3.溢出:
溢出分兩種:正溢和負溢
在這裏插入圖片描述
正數溢出和無符號數是相同的情況,值得一提的是負數溢出。
例:如果在-5的基礎上減去7,在輪盤上你會看到回到了+6。
如果我們用-5-7的做法,即(1101)2-(0111)2=(0110)2=+6,是正確的;
而如果用-5+(-7)的做法,即(1101)2+(1111)2=(1100)2=-4,是錯誤的;但是如果我們直接寫-12,會發現-12=(1100)2=-4,也是錯誤的。
出現這兩種錯誤情況的原因其實是相同的:這種符號加絕對值的表示方式正負數並不對稱,也就是說-m+m其實不等於0,所以我們不能用加上-m來替換減去+m,-12的計算其實是犯了-(5+7)的錯誤。
4.應用:
這種方法不會用來存儲整數,只會用來存儲部分實數。


三、二進制補碼錶示法

1.範圍:-2n-1 ~ 2n-1-1(n位存儲空間)
2.一些基本概念:
原碼:就是符號加絕對值
反碼:正數的反碼就是原碼,負數的反碼是符號位不變,其他位取反
補碼:正數的補碼就是原碼,負數的補碼有兩種計算方式,一是反碼+1,二是原碼從右往左找第一個1,1的右邊(包含1)不變,1的左邊全部取反(不包括符號位)
也就是說正數原碼=反碼=補碼、負數補碼=反碼+1
注意:二進制補碼錶示法只有一個0,也就是(0000)2,-0統一表示成2n-1,也就是(1000)2= -8
例:
在這裏插入圖片描述

3.存儲步驟:
如何以補碼存儲整數
(1)將整數變爲帶符號二進制數
(2)如果是正數或0,保持不變;如果是負數,取其補碼存儲
4.還原步驟:
如何從補碼還原整數
(1)如果是正數或0,保持不變;如果是負數,取其補碼
(2)將該整數化爲十進制或其他進制
5.溢出
在這裏插入圖片描述
二進制補碼的溢出也分正溢和負溢,正溢和上面兩種都相同,因爲正數不用變碼,所以可以用直接相加的結果轉換爲二進制然後去掉溢出位。負溢的話不能用相減的十進制數直接轉,因爲負數需要變碼,正確的計算溢出結果應該是轉換成二進制,然後用二進制相減,比如-3-7=(1101)2-(0111)2=(0110)2=+6,當然這時候你可以使用-3+(-7)=(1101)2+(1001)2=(0110)2=+6的做法,因爲這是一個正負對稱的表達方式。
6.應用
二進制補碼是計算機用於存儲整數的標準表示法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章