1. 程式人生 > >計算機組成原理(2)

計算機組成原理(2)

計算機組成原理

第二章 資料的機器層次表示

1、數值資料的表示

 十進位制(D) 二進位制(B) 八進位制(Q) 十六進位制(H)

1.1原碼錶示法:

純小數:Xs.X1X2....Xn 正數Xs=0;負數Xs=1;數值部分保持不變

純整數:XsX1X2....Xn 正數Xs=0;負數Xs=1;數值部分保持不變(,)

真值0:[+0]=00000;[-0]=10000;

1.2補碼錶示法

純小數:Xs.X1X2....Xn 正數Xs=0;負數Xs=1;正數數值部分保持不變,負數數值部分按位取反,最低位+1;

純整數:XsX1X2....Xn 正數Xs=0;負數Xs=1;正數數值部分保持不變,負數數值部分按位取反,最低位+1;

真值0:[+0]=[-0]=00000;

模:M=2*(n+1)(字長為2n+1)

比較:補碼正、負不對稱,多了一個(-2*n)或(-1)

1.3反碼錶示法

純小數:Xs.X1X2....Xn 正數Xs=0;負數Xs=1;正數數值部分保持不變,負數數值部分按位取反;

純整數:XsX1X2....Xn 正數Xs=0;負數Xs=1;正數數值部分保持不變,負數數值部分按位取反;

真值0:[+0]=00000;[-0]=11111;

1.4原碼轉換為反碼

(1)符號位不變,數值部分全部取反,然後最低位+1;

(2)從低到高,尾數的第一個1以及其右邊的0不變,符號位不變,其他取反

2.機器數的定點表示與浮點表示

2.1定點表示法

2.1.1定點小數

:小數點的位置固定在最高有效位之前,符號數之後。小數點不佔用二進位制位。eg:Xs.X1X2X3..Xn

X(最大正數)=0.111111...=(1-2^-n)

X(最小正數)=0.00000...1=2^-n

X(絕對值最大負數原碼錶示)=1.1111....=-(1-2^-n)

X(絕對值最大負數屬補碼錶示)=-1

總結:機器字長有N+1位時,原碼定點小數範圍為-(1-2^-n)~(1-2^-n);補碼定點小數範圍為-1~(1-2^-n)

2.1.2定點整數:小數點位置隱含固定在最低有效位之後。eg:XsX1X2....Xn[.]

X(最大正數)=011111.....=2^(n)-1

X(最小正數)=00000...1=1

X(絕對值最大負數原碼錶示)=11111...=1-2^n

X(絕對值最大負數補碼錶示)=111...=-2^n

總結:機器字長有N+1位時,原碼定點小數範圍為-(2^n-1)~(2^n-1);補碼定點小數範圍為-2^n~(2^n-1)

2.2浮點表示法

2.2.1浮點數的表示形式

{[Es|E][Ms|M]}

Es:長度為1,為階碼部分的符號位

E:長度為k,為階碼部分的數值部分

Ms:長度為1,為尾數部分的符號位

M:長度為n,為尾數部分的數值位

浮點數:N=M*r^E(r為浮點數階碼的底,一般為2,階碼的大小反映了小數點在浮點數中的實際位置)

X(最大正數)=011111...011111...=(1-2^-n)*2^(2^k-1)

X(最小正數)=10000...100.....1=2^-n*2^(-2^K)

X(絕對值最大負數)=011111...10000000...=-1*2^(2^k-1)[【不太明白為什麼不分類]】

2.2.2規格化浮點數

規定尾數的最高數位必須是一個有效值。

規格化浮點數的尾數M的絕對值要求:1/r<=|M|<1;

(1)原碼錶示時,要求尾數的最高尾數為1.1/r<=|M|<1;

(2)補碼錶示時,要求尾數最高尾數與符號位不同並且1/r<=|M|<1;

(3)規格化的最小正數:0.100000=2^(-1)*2^(-2^k)

2.2.3移碼錶示法

移碼:稱為增碼或偏碼。移碼就是在真值X上增加一個常數,這個常數被稱為偏置值。相當於真值X在數軸上偏移了若干個單位。

表示為[X]移=偏置值+X。偏置值一般為2^n;對於機器字長為n+1來說

移碼的特點:

1).最高位0表示負,1表示正。

2)真值0表示唯一。[+0]=[-0]=10000000。

3)移碼可視為無符號數。

4)同一數值的移碼和補碼僅符號位相反。

2.2.4標準浮點數

1)分類:短浮點數、長浮點數、臨時浮點數

2)短浮點數稱為i單精度浮點數,長浮點數稱為雙精度浮點數。都採用隱含尾數最高數位的方法(為什麼)。臨時浮點數成為擴充套件精度浮點數,沒有隱含位。

3)尾數用原碼錶示,階碼用移碼錶示。

4)短浮點數的尾數為23位(實際24),長浮點數為52位。

5)十進位制與短浮點數格式之間的相互轉換:

    十進位制變為二進位制——規格化二進位制——階碼由規格化二進位制得來,計算階碼的移碼——分別寫出尾數符號位,階碼,尾數——對應的16進位制轉換

ps:記得隱含掉的“1”的問題。

2.3定點表示VS 浮點表示

1)數值的表示範圍:浮點>定點

2)精度:浮點數降低了

3)數的運算:浮點變複雜了

4)溢位處理:定點更容易溢位

2.4定點機VS浮點機

1)定點機:以定點運算為主,浮點運算通過軟體實現

2)定點機+浮點運算部件:微、小型計算機的配置

3)浮點機:具有浮點運算指令和基本浮點運算器。大、中型計算機。

3.非數值資料的表示

3.1字串存放

1)向量法:物理位置必須相鄰,實際存放的是ASCII值,不方便增刪改查。

2)串表法:每個字元程式碼後面都有連結字,物理位置不必相鄰。但是主存利用率不高。

3.2漢字的表示

1)漢字國標碼:每個漢字、圖形用兩個位元組,每個位元組只用低7位進行編碼。

2)漢字區位碼:常用的6763分為94個區,每個區94個漢字(位)。區、位組成二維陣列。區位碼字長為4位,前兩位為區號,後兩位為位號。

國標碼=區位碼(16進位制)+2020H

3)漢字機內碼:兩個字長的程式碼。漢字機內碼=漢字國標碼+8080H

4)漢字字形碼:確定一個漢字字形點陣的程式碼(又稱漢字字模碼、漢字輸入碼)筆畫所到之處為1,否則為0。點陣越密集,漢字質量越高。

3.3統一程式碼(unicode):

1)定義:有足夠能力來表達任意一種語言使用的所有符號

2)編碼方式:用一個16位數來表示unicode中每個符號。符號集被稱為基本多語言平面(BMP)。

3)實現方式:unicode實現方式不同於編碼方式。unicode編碼確定,但是實現方式不同。

4.十進位制數和數串的表示

4.1十進位制編碼:用4位二進位制數來表示一位二進位制數(稱為BCD碼)

ps:因為可以從16種程式碼中選出10種來,所以稱為多種BCD編碼。

4.1.18421碼:稱為NBCD碼。其中1010~1111為非法碼。

4.1.2   2421碼:

1)位權從高到低一次為2421.

2)9的自補碼:只要將自身按位取反,就能得到該數對9的自補2421碼。

3)0101~1010為非法碼。

4.1.3餘3碼:

1)無權碼

2)9的自補碼。

3)0000~0010、1101~1111為非法碼。

4.1.4格雷碼

1)無權碼

2)相鄰狀態變化時,僅有一位二進位制位不同。

3)迴圈特性。

4)6個程式碼(不確定)為非法碼。

4.2十進位制數

4.2.1非壓縮的十進位制數:一個位元組可以存放一個十進位制或者符號的ASCII碼。

根據符號位所處位置,分為以下兩類:

1)前分隔式數字串:符號位單獨佔用一個位元組,放在數值位之前。數值存放用對應的ASCII值。符號位:正數_2BH,負數_2DH.

2)後嵌入式字串:符號位不單獨佔用一個位元組。,而是嵌入到數值最後一位。正數不變,符號最後一位加40H。

4.2.2壓縮十進位制數

一個字存放兩位BCD碼的二進位制數。

符號位也佔用半個位元組,並存放在最低位後面。用CH表示正數。DH表示負數。

規定:數的個數+符號位之和必須為偶數。

當為奇數時,最高位補0H,即第一個位元組高半位為0000.

5.不同型別的資料表示舉例

1)無符號整數

2)帶符號整數

3)浮點數

4)指標資料

5)串資料

6)BCD數

6.資料校驗碼

6.1基本概念:

資料校驗碼:那些能夠發現錯誤或能夠自動糾正錯誤的資料編碼,又稱之為“檢錯糾錯編碼”。

碼距:任何一種編碼都由許多碼字構成,任意兩個碼字之間最少變化的二進位制位數。

原理:待理解(!)

相關性:碼距越大,檢錯能力越強,糾錯能力《=檢錯能力。

6.2奇偶校驗碼

1)作用:能監測出一位或者奇數位的錯誤

2)組成:奇偶校驗碼(N+1位)=N位有效資訊+1位校驗位

3)分類:奇校驗:整個校驗碼中1的個數為奇數。偶檢驗:整個校驗碼中1的個數為偶數。

6.3簡單奇偶校驗碼

1)奇形成=1:D7~D0有偶數個1

2)奇形成=0:D7~D0有奇數個1(偶形成是奇形成取反)

3)奇校驗出錯:D校驗與D7~D1異或整體取反(偶校驗出錯是奇校驗出錯取反)

6.4交叉奇偶校驗(橫縱校驗)

可以發現兩位同時出錯

6.5海明校驗碼

發現一位出錯,並能找到出錯位置並自動糾錯,發現兩位錯誤編碼

校驗位的位數K和資訊位的位數N應滿足下列關係:2K-1 ≥N+K+1。

6.6迴圈冗餘校驗碼(CRC碼)

除法原理

K的求法(?)

求解步驟: