1.1電腦系統的基本組成
電腦硬體系統由:
運算器、控制器、儲存空間、輸入裝置、輸出裝置5大組件組成
運算器與控制器等組件已被整合在一起了統稱為中央處理器
運算器:主要完成算術和邏輯運算
控制器:主要是從主存中取出指令並進行分析
儲存空間:電腦系統中的記憶裝置,分為記憶體(Main Memory ,MM,簡稱記憶體、主存)和外部
儲存空間(外存)。記憶體用來臨時存放電腦運行時所需要的程式、資料、及中間結果。寄存器
是cpu中的記憶裝置,用來臨時存放指令、資料及運算結果、與記憶體相比,寄存器的速度要快得多。
1.2電腦中資料的表示及運算
1.2.1電腦中資料的表示
…電腦內部,各種資訊都必須經過數字化編碼後才能被傳送、儲存、和處理,
所謂編碼,就是採用少量的基本符號,選用一定的組合原則,以表示大量複雜
多樣的資訊,基本符號的種類和這些符號的組合規則是一切資訊編碼的兩大要素,例如,用26個英文字母表示英文詞彙,這是編碼的典型例子。
1. 進位計數制及其轉換
在採用進位計數的數字系統中,如果只用r個基本符號表示數值,則稱稱其為r進位,
R稱為該數制的基數。一句話:就是一種計數方式
電腦常用的進位元制的表示有:
二進位:逢二進一 形式表示符:B
八進位:逢八進一 形式表示符:O
十進位:逢十進一 形式表示符:D
十六進位:逢十六進一 形式表示符:H
二進位運算規則:
*加法逢二進一 0+0=0 1+0=1 1+1=0;
*減法借一當二 0-0=0;1-0=1;0-1=1;
*乘法:0*0=0 1*0=0 1*1=0;
算算:
十進位轉成二進位
(175)10=(10101111)2--》除以2取餘,第一次得到的為最低位
(0.25)10=(0.01)2 —》乘以2取整,第一次得到的為最高位
0.25*2….0; 0.5*2….1;à0.01
(175.71875)10=(10101111.10111)2à因為整數和小數的運算規則是不一樣的
,所以要分開來運算,然後再相加
如:175=10101111
0.71857=0.10111
二進位轉成十進位;
(100110)2=0*20+1*21+1*22+0*23+0*24+1*25=(38)10
(0.101)2 =1*2-1+0*2-2+1*2-3=(0.625)10
(100110.101)2=(38.625) 10
10進位與8進位的轉換
例如:
十進位數10轉換成八進位就是:12
過程是:10(10)=00001010(2)=12(8)
例:
反過來求:
10(8)――》??(2)
10(8)=00001000(2)=8(10)
十進位與16進位的轉換
10(10)――》??(16)
10(10)=00001010(2)=A(16)
那麼12(16)——??(10)
12(16)=00010010(2)=18(2)
3.機器數和碼制
各種資料在電腦中表示的形式稱為機器數。機器數有無符號和帶符號之分
為了便於運算,帶符號的機器數可以採用原碼、反碼和補碼等不同的編碼方法,這叫碼制
最高位最示符號位:0表示正號,1表示負號,
正數的補碼和反碼是相同的
原碼:一個整數的絕對值的二進位表示稱之為原碼
反碼=原碼取反
補碼=反碼+1;
數值零的原碼有兩種形式:+0=00000000;-0=00000000;
數值零的反碼有兩種形式:+0=00000000;-0=11111111;
注意:運算過程中符號位是不變的
負數的十進位數轉為二進位
例-3(10)――》??(2)
(1)。得到原碼:00000011
(2)。得到反碼:11111100
(3).得到補碼:11111101,OK
如果想要得到8進位那就3位合成一位,如果要得到16進位,就4位合成一位。
以上都假設機器字長n=8。
***移碼錶示法
移碼錶示是在數X上增加一個位移量來定義,常用於表示浮點數中的階碼。如果字長為n,在位移2n-1的
情況下,只要將補碼的符號位取反便可獲得相應的移碼錶示
若機器字長n=8,則 : -1(移)=01111111;
4.浮點數
在十進位中,一個數可以寫成多種表示形式。如83.125可寫成103*0.083125或104*0.0083125
同樣,一個位元可以寫成多種表示形式:如
1011.10101可以寫成24*0101110101、25*0.0101110101
一個含小數點的位元N可以表示為
N=2E*F
其中E稱為階碼,F為尾數。這種表示數的方法叫浮點標記法
浮點數所能表示的數值由階碼決定,精度則由尾數決定
利用IEEE754標準將數176.0625表示為單精確度浮點數
1. 轉換在二進位:得:10110000.0001
2. 規格化處理:得:1.01100000001*2 7次方,這就保證了最高位為1
3. 將最位去掉擴充為單精確度浮點數所規定的23位尾數
得:01100000001000000000000
4. 求階碼;指數為位移後的指數為7+127=134
得:0 100011001100000001000000000000—》單精確度浮點數表示形式
**十進位數與字元的編碼錶示
用4位二進位代碼錶示一位十進位數,稱為二-十進位編碼,簡稱BCD編碼
因為2的4次等於16,而十進位只有0-9這10個不同數符,
故有多種BCD編碼,根據4位代碼中每一位是否有確定的權來劃分,
可以分為有權碼和無權碼兩類
**ASCII碼:
美國標準資訊交換碼
低4位組d3d2d1d0用作行編碼
高3位組d6d5d4用作列編碼
***漢字編碼
漢文書處理包括漢字的編碼輸入漢字的儲存漢字的輸出
**輸入碼
分為3類數字編碼、拼音碼、字形碼
(1).數字編碼。數字編碼就是用數字串代表一個漢字的輸入,常用 的國標區位碼。國標區位碼將國家標準局公布的
6763個兩級漢字分成94個區,每個區94位,區碼和位碼各兩位十制制數字。例如。“中”字位於每54區48位,區位碼為
5448。
(2).拼音碼。拼音碼是以漢語讀音為基礎的輸入方法。由於漢字同音字太多,輸入重碼率很高,因此,按拼音輸入後
還必須進行同音字選擇,會影響輸入速度。
(3)。字形編碼。字形編碼是以漢字的形狀確定的編碼。漢字總數多,但都是由一筆一划組成,全部漢字的組件和筆劃是有限的
。因此,把漢字的筆劃組件用字母或數字進行編碼,按筆劃書寫的順序依次輸入,就能表示一個漢字,五筆字形、表形碼等
便是這種編碼法,五筆字弄編碼是最常見的輸入碼
2)內部碼
漢字內部碼(漢字內碼)是漢字在裝置或資訊處理系統內部最基本的表達形式,是在裝置和資訊處理系統內部儲存、處理、傳輸漢字用的
代碼。漢字數量多,用一個位元組無法區分,採用國家標準局GB2312-80中規定的漢字國標碼,兩個位元組存放在一個漢字的內碼
,每個位元組的最高位置1,作為漢字機內碼。由於兩個位元組各用7位,因此可表示16384個可區別的機內碼。心漢字“大”為例。
國標碼為3473H兩個位元組的高位置1,得到機內碼為B4F3H。+8080得到!
3)漢字字形是表示漢字字形的字模資料,通常用點陣、向量函數等方式表示,用點陣表示字形時,漢字字形碼指
的就是這個漢字字形點陣的代碼,字形碼也稱字模碼,是用點陣表示的漢字字形碼,它是漢字的輸出方式,
根據輸出漢字的要求不同,點陣的多少也不同,簡易型漢字為16*16陣,高精度型漢字為24*24點陣、32*32點陣
、48*48點陣。
***基本的邏輯運算
在邏輯代數中有三種最基本的運算:與、或、非
與運算:又稱為邏輯乘,其運算子號常用 AND 等符號表示
設A和B為兩個邏輯變數,若且唯若A和B的取值都為真時,A與B的值才會真,
否則值為假
或運算:也稱邏輯加,其運算子號常用 OR表示
設A和B為兩個邏輯變數,若且唯若A和B的取值為假時, A或B的值為假
否則為真人。
非運算:非運算也稱為邏輯求反運算,真的就是假的,假的就是真的
異或運算:又稱為半加運算,運算子號常用XOR
設A和B為兩個邏輯變數,若且唯若A、B的值不同時,A異或B為真,
A異或B運算可由前三種基本運算表示。
邏輯運算式的化簡:
*****機器數的加減運算
在電腦中,可以只設定加法器,將減法運算為加法運算來實現
1. 原碼加、減法
當兩個相同符號的原碼數相加時,只需將數值部分直接相加,
當兩個加數的符號相異時,則應進行減法運算。其方法是:先比較兩個絕對值的大小
,然後用絕對值大的絕對值減去絕對值小的絕對值。結果的符號取絕對值大的符號,
So原碼錶示的機器數進行減法運算是很麻煩的,so電腦中很少被採用
2. 補碼加、減法
補碼的加法運算規則是:和的補碼等於補碼求和,即【X+Y】=【X】+【Y】
補碼的減法是方法是:差的補碼等於被減數的補碼加上減數取負後的補碼,即【X-Y】=[X]+[-Y]
由【X】求【-X】的方法是:【X】的各位取反(包括符號位),末尾加1
設二進位整數X=+10000100,Y=+1110,求X+Y、X-Y的值
解:設用8位補碼錶示帶符號資料,由於 X和Y都是正數,所以[X]補=010000100
[Y]補=00001110,那麼【-Y】被=11110010
由於 X和Y均是正數,所以X+Y的值就等於[X]補+[Y]補,即X+Y=+1010010,
設二進位整數X=+110110,Y=-110011,求X+Y,X-Y的值
解:設用8位補碼錶示符號資料
因此:X補=00110110
Y補=11001101 ——》-Y補=00110001
由於X是正數、Y是負數,且X的絕對值大於Y的絕對值,所以X+Y的值就等於X-|Y|,也就等於X+Y
.因此X-Y=X+|Y|,也就等於X+-Y
補碼加減運算規則:
1. 參加運算的運算元用補碼錶示
2. 符號位參加運算
3. 若進行相加運算,則兩個數的補碼直接相加,若進行相減運算,則將減數邊同符號位一起
變反加1後與被減數相加
4,運算結果用補碼錶示
與原碼減運算相比,補碼減運算的過程要簡單很多,在補碼加減運算中,符號位和數值位一樣
參加運算,無須作特殊處理,因此,多數電腦都採用補碼加減運演算法
4. 運算結果用補碼錶示:
與原碼減運算相比,補碼減運算的過程要簡便很多,在補碼加減運算中,符號位和數值位一樣
參加運算,無須作特殊處理,因此,多數計算楊都採用補碼加減運算
3)、溢出及判定
確定了運算的字長和資料的表示方法後,資料的範圍也確定了,一旦運算結果超出所能表示的資料範圍
就會發生溢出,發生溢出時,運算結果肯定是錯誤的
只有當兩個符號的相加或相減時,運算結果才有可能溢出
設正整數X=+1000001,Y=+1000011,若用8位補碼錶示
則X補=01000001 ;Y補=01000011
則:X補+Y補=10000100;
兩個正數相加的結果為一個負數,產生錯誤的原因就是溢出
*用的溢出檢測機制主要有進位制判決法和雙符號位判決法等如下幾種方法
(1)雙符號位判決法,若採用兩位表示符號,即00表示正號、11表示負號,則溢出時兩個符號就不一致了
,從而可以判斷是否發生了溢出。
若運算結果兩符號分別用S1和S2表示,則差別溢出的邏輯表示式為-VF=S2XORS1
設正整數X=+10000001,Y=+10000011,若用8位補碼錶示,
則X補 00 10000001 ;Y補 0010000011
得:010000100;結果s2和S1不一致,說明運算過程中有溢出。
校正碼
電腦系統運行時,各個組件之間要進行資料交換,為了確保資料在傳送過程中正確無誤
一是提高硬體電路的可靠性,二是提高代碼的校正能力,包括查錯和錯誤修正,通常使用校正碼
的方法來檢測傳送的資料是否出錯,其基本思想是把資料可能出現的編碼分為兩類,合法編碼和
錯誤編碼,合法編碼用於傳送資料,錯誤編碼是不允許在資料中出現的編碼,合理地設計錯誤編碼以及
編碼規則,使得資料在傳送中出現某種錯誤時就會變成錯誤編碼,這樣就可以檢測出接收到的資料是否出
錯
碼距:是校正碼中的一個重要概念,所謂碼距,是指一個編碼系統中任意兩個合法編碼之間至少
有多少個二進位位不同,例如:4位8421碼的碼距為1.在傳輸過程中,該代碼的一位或多位發生錯誤
,都半變成另外一個合法編碼,因此這種代碼無差錯校正能力。
**簡單認識三種校正碼
1. 同位碼
同位是一種簡單有效校正方法,這種方法通過在編碼中增加一個校正位來使編碼中
1的個數奇數(奇數同位)或者偶數(偶校正),從而使碼距變為2 。
從表1-7可知,同位位元的8421碼由4位資訊位和1位校正位組成,碼距為2,能檢查出代碼
資訊奇數位出錯的情況,而錯在哪此位是檢查不出來的,即:它只能發現錯誤,而不能校正錯誤。
*常用同位碼有三種:
(1)、水平同位碼。對每一個資料的編碼添加校正位,使資訊位與校正位處於同一行
(2)、垂直同位碼:這種校正碼把資料分成若干組,一組資料佔一行,排列整齊,再加
一行校正碼。針對每一列採用奇數同位或是偶校正。
1. 海明碼
海明碼也是利用奇偶性來檢錯和錯誤修正的校正方法,
海明碼的構成方法:在資料之間插入K個校正位,通過擴大碼距來實現檢錯和錯誤修正