資訊的表示與存儲
計算機中的資訊
- 計算機內部的資訊可以分成兩大類:
- 資料資訊——計算機程式加工的對象
- 控制資訊——指揮計算機操作
資訊的儲存單位
- 位元(bit,b): 度量資料的最小單位,表示一位二進位資訊。
- 位元組(byte,B): 由八位二進位數字組成(1 byte = 8 bit)。
- 千位元組 1 KB = 1024 B
- 兆位元組 1 MB = 1024 K
- 吉位元組 1 GB = 1024 M
計算機的數字系統
- 計算機採用的是二進位數字系統。
- 基本符號: 0、1
- 進位原則: 逢二進一
- 優點:
- 易於物理實現
- 二進位數運算簡單
- 機器可靠性高
- 通用性強
- 缺點: 對人來說可讀性差
程式設計中常用的數制
R進制→十進制
- 各位數字與它的權相乘,其積相加。
- 例如:(11111111.11)2
=1×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20+1×2-1+1×2-2
=(255.75)10(3506.2)8=3×83+5×82+0×81+6×80+2×8-1=(1862.25)10(0.2A)16=2×16-1+10×16-2=(0.1640625)10
十進制→ R 進制
- 十進制整數轉換成R進制的整數:“除R取餘”法, 例如:2 68 餘 數
2 34 ┄┄┄┄┄┄┄┄┄┄┄ 0 低位
2 17 ┄┄┄┄┄┄┄┄┄┄┄ 0
2 8 ┄┄┄┄┄┄┄┄┄┄┄ 1
2 4 ┄┄┄┄┄┄┄┄┄┄ 0
2 2 ┄┄┄┄┄┄┄┄┄┄ 0
2 1 ┄┄┄┄┄┄┄┄┄ 0
0 ┄┄┄┄┄┄┄┄┄ 1 高位所以 6810=10001002 - 十進制小數轉換成R進制小數:“乘 R 取整”法,例如:
二、八、十六進制的相互轉換
- 每位八進位數相當於三位二進位數
- 每位十六進位數相當於四位二進位數
(1011010.10)2=(001 011 010 .100)2=(132.4)8
(1011010.10)2=(0101 1010 .1000)2=(5A.8)16
(F7)16=(1111 0111)2=(11110111)2
二進位數的編碼表示:原碼
- “符號──絕對值表示”的編碼
- 例如:
X=+0101011 [X]原= 0 0101011
X=- 0101011 [X]原= 1 0101011
符號位
- 例如:
- 缺點:
- 零的表示不唯一:[+0]原 =000…0 [-0]原 =100…0
進行四則運算時,符號位須單獨處理,且運算規則複雜。
- 零的表示不唯一:[+0]原 =000…0 [-0]原 =100…0
二進位數的編碼表示:反碼
- 正數的反碼與原碼表示相同。
- 負數的反碼與原碼有如下關係:
- 符號位相同(仍用1表示),其餘各位取反(0變1,1變0)。例如:
X=-1100110 [X]原 =11100110 [X]反 =10011001
X=+0000000 [X]原 =00000000 [X]反 =00000000 - 反碼中零的表示也不唯一
X=-0000000 [X]原 =10000000 [X]反 =11111111 - 反碼只是求補碼的中間碼
二進位數的編碼表示:補碼
- 模數:
- n位整數(包括一位符號位),則它的模數為 2n 。 n位小數,小數點前一位為符號位,則它的模數為 2。
- 補數:
- 一個數減去另一個數,或者說一個數加上一个負數,等於第一個數加上第二個數的補數。例(時鐘指針):
8+(-2)=8+10 ( mod 12 ) - 一個二進位負數可用其模數與真值做加法 (模減去該數的絕對值) 求得其補碼。
- 一個數減去另一個數,或者說一個數加上一个負數,等於第一個數加上第二個數的補數。例(時鐘指針):
- 計算機中的補碼表示法
- 負數的補碼由該數反碼的末位加 1 求得
- 對補碼再求補即得到原碼
- 補碼運算規則
- 符號位可作為數值參加運算
- 減法運算可轉換為加法運算:
- 加上一個負數等於加上該數的補碼
- 補碼運算的結果仍為補碼
- 運算結果溢出:
- 負數之和得正數,或正數之和得負數
實數的浮點表示
- 計算機中通常採用浮點方式表示小數一個數 N 用浮點形式表示可以寫成:N=M×2E
- E表示2的冪,稱為數N的階碼。階碼確定了數N的小數點的位置,其位數反映了該浮點數所表示的數的範圍。
- M表示數N的全部有效數字,稱為數N的尾數。其位數反映了資料的精度。
- 浮點數的具體格式隨不同機器而有所不同。例如,假設有一台16位機,其二進位浮點數組成為階碼4位,尾數12位,則浮點數格式如下:
數的表示範圍
- 機器中數的表示範圍與資料位數及表示方法有關。一個M位整數(包括一位符號位):
- 如果採用原碼或反碼表示法,能表示的最大數為2m-1 -1,最小數為-(2m-1 -1)。
- 若用補碼表示,表示範圍為-2m-1 ~ 2m-1 -1。
- n位定點小數
- 採用原碼或反碼表示時,範圍為-(1-2-n )~(1-2-n )
- 採用補碼表示時,範圍為-1 ~(1-2-n )。
- 浮點數的表示範圍由階碼位數和尾數位數決定
- 若階碼用r位整數(補碼)表示,尾數用n位定點小數(原碼)表示,則浮點數範圍是:
非數值資訊的表示
- 字元在計算機中是透過編碼來表示的
- ASCII碼 是一種常用的西文字元編碼:用7位二進位數表示一個字元,最多可以表示27=128個字元
- EBCDIC碼: 用8位二進位數表示一個字元,最多可以表示28=256個字元
- “資訊交換用漢字編碼字元集·基本集”(GB2312-80標準),簡稱國標碼: 是應用較為廣泛的漢字編碼。二字節碼,用兩個七位二進位數編碼表示一個漢字。