注:主要說明整數和浮點數的表示方法。
參考資料:《計算機組成原理》(第2版 唐朔飛 著 ) 以及北航計算機組成原理課件。
1 無符號數和有符號數
無符號數:所有位都是數值位,沒有符號位;
有符號數:編碼最高位為符號位,“0”表示“正數”,“1”表示“負數”。
2 定點小數和定點整數
(1)定點小數:絕對值小於1;
例如:十進制的0.75,表示為二進制為01100000
轉換的規則,可參考百度問答:https://zhidao.baidu.com/question/1836447347903048020.html
我們規定總長度為7位,接着依次計算:
0.75*2=1.5 整數1,小數部分為0.5,繼續轉換;
0.5*2=1.0 整數1,小數部分為0,轉換完畢;
0.75d=0.11b=0.1100000b,低位添0補充到8位。
(2)定點整數:沒有小數部分;
整數的十進制和二進制轉換就用除基取余法就可以了,就不再解釋了。
3 原碼、反碼、補碼
但用符號位和數值位來表示數值時,可用原碼、反碼、補碼表示方式。它們的表示范圍如下:
以-3為例進行說明
原碼:1000 0011 = 128 + 3
反碼:1111 1100 = 255 - 3
補碼:1111 1101 = 256 - 3
4 浮點數的表示
(1)浮點數在機器中的表示
形式如下,由階碼和尾數兩部分組成:
階碼:定點整數表示,階碼和階符的位數m合起來歡迎浮點數的表示范圍以及小數點的實際位置。
尾數:定點小數表示,其位數n反應浮點數的精度。
數符:表示浮點數的正負。
舉例進行說明:178.125d = 10110010.001b = 0.10110010001×201000
階碼:01000
尾數:0.10110010001
簡單說一下計算過程:
178d = 10110010
0.125d = 0.001b
178.125d = 10110010.001b,左移8位,相當於0.10110010001乘以201000。
(2)IEEE 754標准
現代計算機,浮點數一般采用IEEE標准,標准形式如下:
數符s:表示浮點數的正負。
階碼:階碼的真值都被加上一個常數(偏移量),如短實數、長實數的偏移量用十六進制表示為:7FH、3FFH。
尾數:常用規格化表示,即非“0”的有效位最高位總是“1”。
常用的浮點數有:
舉例進行說明:
至此,計算機中數的表示基本說完了。