C語言之計算機基礎(chǔ)學(xué)習(xí)資料二.doc_第1頁
C語言之計算機基礎(chǔ)學(xué)習(xí)資料二.doc_第2頁
C語言之計算機基礎(chǔ)學(xué)習(xí)資料二.doc_第3頁
C語言之計算機基礎(chǔ)學(xué)習(xí)資料二.doc_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

C語言之計算機基礎(chǔ)學(xué)習(xí)資料二機器數(shù)與真值一、 機器數(shù)及其編碼機器數(shù)就是數(shù)值在計算機中的表示形式,真值則是它在現(xiàn)實中的實際數(shù)值。可以這樣簡單的理解。因為計算機只能直接識別和處理用0、1兩種狀態(tài)的二進(jìn)制形式的數(shù)據(jù),所以在計算機中無法按人們的日常書寫習(xí)慣用正、負(fù)符號加絕對值來表示數(shù)值,而與數(shù)字一樣采用二進(jìn)制代碼0和1來表示正、負(fù)號。這樣在計算機中表示帶符號的數(shù)值數(shù)據(jù)時,符號和數(shù)均采用了0、1進(jìn)行了代碼化。這種采用二進(jìn)制表示形式,連同正負(fù)符號一起代碼化的數(shù)據(jù),稱為機器數(shù)或者機器碼(即,數(shù)值在計算機中的二進(jìn)制表示形式)。與機器數(shù)對應(yīng),用正、負(fù)符號加絕對值來表示的實際數(shù)值稱為真值。根據(jù)約定機器數(shù)是否存在符號位,機器數(shù)可以分為無符號數(shù)和帶符號數(shù)。無符號數(shù)是指計算機字長的所有二進(jìn)制位均表示數(shù)值。帶符號數(shù)是指機器數(shù)分為符號位和數(shù)值兩部分,且均采用二進(jìn)制表示。一般約定最高位表示符號。例1-1:10011001作為無符號定點整數(shù)時,真值是153;作為帶符號定點整數(shù)時,第一位是符號位,1代表負(fù)號,二進(jìn)制數(shù)10011001的真值是-0011001,轉(zhuǎn)化成十進(jìn)制是-25。對于帶符號數(shù),根據(jù)小數(shù)點位置固定與否,又可以分為定點數(shù)和浮點數(shù)。在介紹浮點數(shù)之前我們要將注意力完全放在定點數(shù)上面,要有點耐心,對定點數(shù)的理解程度決定了我們對浮點數(shù)的理解程度,因為可以將浮點數(shù)看成是對定點數(shù)的一種應(yīng)用,以后就會明白了。好了,先看一看什么是定點數(shù)。定點數(shù)約定所有數(shù)據(jù)的小數(shù)點位置均是相同且固定不變的。計算機中通常使用的定點數(shù)有定點小數(shù)和定點整數(shù)兩類。定點小數(shù):對于一個長度為n位的機器數(shù),定點小數(shù)約定小數(shù)點在符號位和最高數(shù)值位之間,如下數(shù)符(最高位,占用1位).尾數(shù)(剩余n-1位)小數(shù)點只是一個約定,是隱含的,不占用空間。定點整數(shù):對于一個長度為n位的機器數(shù),定點整數(shù)約定小數(shù)點在最低數(shù)值位之后,如下數(shù)符(最高位,占用1位)尾數(shù)(剩余n-1位).小數(shù)點也是隱含的。例1-2:下的八位二進(jìn)制數(shù),我們看看它們所代表的值是多少定點小數(shù):1.1011001真值=-0.1011001=-0.6953125定點整數(shù):11011001真值=-1011001=-89真值:127=+1111111定點整數(shù):01111111真值:-0.125=-0.001定點小數(shù):1.00100001、 機器數(shù)與真值機器只認(rèn)識二進(jìn)制數(shù):0、1。這是因為,電路狀態(tài)常有兩個,如通、斷;高電平、低電平;可用0、1表示。這種0、1、0、11在機器中的表現(xiàn)形式機器數(shù)。一般為8位。 無符號數(shù):00000000B、11111111B即00H FFH機器數(shù)有:帶符號數(shù):+1010110B、-1101001 真值 01010110、11101001 機器數(shù)2、 機器數(shù)的編碼及運算對帶符號數(shù)而言,有原碼、反碼、補碼之分,計算機內(nèi)一般使用補碼。1) 原碼將數(shù)“數(shù)碼化”,原數(shù)前“+”用0表示,原數(shù)前“-”用1表示,數(shù)值部分為該數(shù)本身,這樣的機器數(shù)叫原碼。設(shè)X原數(shù);則X原 = X(X0) X原 = 2n-1 X (X0),n為字長的位數(shù)。如,+3原 = 00000011B-3原 = 27 - (-3) = 10000011B0有兩種表示方法:00000000 +0 10000000 -0原碼最大、最小的表示:+127、-1272) 反碼規(guī)定正數(shù)的反碼等于原碼;負(fù)數(shù)的反碼是將原碼的數(shù)值位各位取反。X反 = X (X0)X反 =(2n 1)+ X (X0)如,+4反 = +4原 = 00000100 B -4反 = (28 1)+(-4) = 11111111- 00000101 = 11111010 B 反碼范圍:-127 +127 兩個0; +0 00000000 B-0 11111111 B3) 補碼補碼的概念:現(xiàn)在是下午3點,手表停在12點,可正撥3點,也可倒撥9點。即是說-9的操作可用+3來實現(xiàn),在12點里:3、-9互為補碼。運用補碼可使減法變成加法。規(guī)定:正數(shù)的補碼等于原碼。負(fù)數(shù)的補碼求法:1)反碼 + 1 2)公式:X補 = 2n + X (X0)如,設(shè)X = - 0101110 B , 則X原 = 10101110 B則X補 = X反 + 1 = 11010001 + 00000001 = 11010010 B如,+6補 = +6原 = 00000110 B -6補 = 28 + (-6) = 10000000 00000110 = 11111010 B8位補碼的范圍 128 +127。0 的個數(shù):只一個,即00000000而10000000 B是-128的補碼。原碼、反碼、補碼對照表:表1-2 P104)補碼的運算當(dāng)X0時,X補= X反=X原 X補補 = X原X補+ Y補 = X+Y 補 X-Y 補= X+(-Y)補例:已知 X=52 Y=38 求X-Y方法1: 減法: 方法2: 加法 X-Y = 52-38 =14 X-Y = X-Y補補 = X補+-Y補補0 0 1 1 0 1 0 0 = 52補+ -38補補-) 0 0 1 0 0 1 1 0 = 14 補 =140 0 0 0 1 1 1 0 52補: 0 0 1 1 0 1 0 0 -38補:+) 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 自然丟失 計算機在做算術(shù)運算時,必需檢查溢出,以防止發(fā)生錯誤5)運算的溢出問題 資料字長(位數(shù))有一定限制,所以資料的表示應(yīng)有一個范圍。 如字長8位時; 補碼范圍-128+127若運算結(jié)果超出這個范圍,便溢出。例: 98補: 0 1 1 0 0 0 1 0 85補: 0 1 0 1 0 1 0 1 25補:+)0 0 0 1 1 0 0 1 47補:+)0 0 1 0 1 1 1 1123補: 0 1 1 1 1 0 1 1 132補: 1 0 0 0 0 1 0 0 未溢出 0 0 溢出 0 1 Cs+1 Cs(未溢出) Cs+1 Cs (溢出) 錯:兩個正數(shù)相加和為負(fù)數(shù)。 - 85補: 1 0 1 0 1 0 1 1 - 19補: 0 1 0 1 0 1 0 1 - 47補:+)1 1 0 1 0 0 0 1 - 79補:+)1 0 1 1 0 0 0 1- 132補: 1 0 1 1 1 1 1 0 0 - 98補: 1 1 0 0 1 1 1 1 0 溢出 1 0 未溢出 1 1 Cs+1 Cs Cs+1 Cs 錯:兩個負(fù)數(shù)相加和為正數(shù)。可見:結(jié)果正確(無溢出)時,Cs+1 = Cs結(jié)果錯誤(溢出)時,Cs+1 Cs 溢出判斷:溢出 = Cs+1Cs(即結(jié)果是0為無溢出;1為有溢出)3、 十進(jìn)制數(shù)的編碼對機器:二進(jìn)制數(shù)方便,對人 :二進(jìn)制數(shù)不直觀,習(xí)慣于十進(jìn)制數(shù)。在編程過程中,有時需要采用十進(jìn)制運算,但機器不認(rèn)識十進(jìn)制數(shù)。 怎么辦?可以將十進(jìn)制的字符用二進(jìn)制數(shù)進(jìn)行編碼:0 0000 9 10011 0001 101020010 10113 0011 1100 未用碼4 0100 11015 0101 11106 0110 11117 01118 1000這叫做二進(jìn)制數(shù)對十進(jìn)制編碼BCD碼。上述每4位二進(jìn)制數(shù)表示一個十進(jìn)制字符,這4位中各位的權(quán)依次是: 8、4、2、18421 BCD碼。BCD碼的運算:例: 1 8 0 0 0 1 1 0 0 0+) 3 BCD碼相加 +) 0 0 0 0 0 0 1 1 2 1 0 0 0 1 1 0 1 12 B 非BCD碼(錯)怎么辦?需進(jìn)行十進(jìn)制調(diào)整:0 0 0 1 1 0 0 0+) 0 0 0 0 0 0 1 10 0 0 1 1 0 1 1 (個位大于9,應(yīng)進(jìn)1)+) 0 1 1 0 (加6使進(jìn)1) 0 0 1 0 0 0 0 1 (結(jié)果形如出21)(1)BCD碼加法規(guī)則兩個BCD數(shù)相加時,“某位”的和小于10則保持不變;兩個BCD數(shù)相加時,“某位”的和大于9,則和數(shù)應(yīng)加6修正。(2)BCD碼減法規(guī)則兩個BCD數(shù)相減時,“某位”的差未發(fā)生借位,則差數(shù)保持不變;兩個BCD數(shù)相減時,“某位”發(fā)生了借位,其差應(yīng)減6修正。這里“某位”指BCD數(shù)中的“個位”、“十位”、“百位”、0 1 1 0 0 1 0 1 (65) 0 0 1 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論