




已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章 預備知識(數(shù)制與碼制),1.1 進位計數(shù)制及各計數(shù)制間的轉(zhuǎn)換 1.2 二進制數(shù)的運算 1.3 帶符號數(shù)的表示方法 原碼、反碼、補碼 1.4 定點數(shù)與浮點數(shù) 1.5 BCD碼和ASCII碼,1.1 進位計數(shù)制及各計數(shù)制間的轉(zhuǎn)換,數(shù)制是人們對事物數(shù)量計數(shù)的一種統(tǒng)計規(guī)律。在日常生活中最常用的是十進制,但在計算機中,由于其電氣元件最易實現(xiàn)的是兩種穩(wěn)定狀態(tài):器件的“開”與“關(guān)”;電平的“高”與“低”。因此,采用二進制數(shù)的“0”和“1”可以很方便地表示機內(nèi)的數(shù)據(jù)運算與存儲。在編程時,為了方便閱讀和書寫,人們還經(jīng)常用八進制數(shù)或十六進制來表示二進制數(shù)。雖然一個數(shù)可以用不同計數(shù)制形式表示它的大小,但該數(shù)的量值則是相等的。,1.1.1進位計數(shù)制 當進位計數(shù)制采用位置表示法時,同一數(shù)字在不同的數(shù)位所代表的數(shù)值是不同的。每一種進位計數(shù)應包含兩個基本的因素: (1)基數(shù)R(Radix):它代表計數(shù)制中所用到的數(shù)碼個數(shù)。如:二進制計數(shù)中用到0和1兩個數(shù)碼;而八進制計數(shù)中用到07共八個數(shù)碼。一般地說,基數(shù)為R的計數(shù)制(簡稱R進制)中,包含0、1、R-1個數(shù)碼,進位規(guī)律為“逢R進1”。,(2)位權(quán)W(Weight):進位計數(shù)制中,某個數(shù)位的值是由這一位的數(shù)碼值乘以處在這一位的固定常數(shù)決定的,通常把這一固定常數(shù)稱之為位權(quán)值,簡稱位權(quán)。各位的位權(quán)是以R為底的冪。如十進制數(shù)基數(shù)R=10,則個位、十位、百位上的位權(quán)分別為100,101,102。 一個R進制數(shù)N,可以用以下兩種形式表示: (1)并列表示法,或稱位置計數(shù)法: (N)R(K n-1 K n-2K1K0K-1 K -2K-m)R,(2)多項式表示法,或稱以權(quán)展開式: (N)RK n-1 R n-1K n-2 R n-2K1R1K0R0 K-1 R-1K-m R-m= 其中:m、n為正整數(shù),n代表整數(shù)部分的位數(shù);m代表小數(shù)部分的位數(shù);Ki代表R進制中的任一個數(shù)碼,0KiR-1。 1.二進制數(shù) 二進制數(shù),R2,Ki取0或1,進位規(guī)律為“逢2進1”。任一個二進制數(shù)N可表示為:,(N)2K n-1 2 n-1K n-2 2 n-2K121K020-1-1K-m 2-m (1 1) 例如:(1001.101)2=12302202112012-102-2 2. 八進制數(shù) 八進制,R8,Ki可取07共8個數(shù)碼中的任意1個,進位規(guī)律為“逢8進1”。任意一個八進制數(shù)N可以表示為: (N)8K n-1 8 n-1K n-2 8 n-2K181K080 K-1 8-1K-m 8-m (12) 例如:(246.12)828248168018-128-2,3.十六進制數(shù) 十六進制數(shù),16,i可取015共16個數(shù)碼中的任一個,但1015分別用A、B、C、D、E、F表示,進位規(guī)律為“逢16進1”。任意一個十六進制數(shù)可表示為: (N)16K n-1 16 n-1K n-2 16 n-2K1161K0160K-1 16-1K-m 16 m (13) 例如:(2D07.A)16216313162016171601016 -1,表11給出了以上3種進制數(shù)與十進制數(shù)的對應關(guān)系。為避免混淆,除用(N)R的方法區(qū)分不同進制數(shù)外,還常用數(shù)字后加字母作為標注。其中字母B(Binary)表示二進制數(shù);字母Q(Octal的縮寫為字母O,為區(qū)別數(shù)字0故寫成Q)表示八進制數(shù);字母D(Decimal)或不加字母表示十進制數(shù);字母H(Hexadecimal)表示十六進制數(shù)。,表11二、八、十、十六進制數(shù)碼對應表,1.1.2 各種進制數(shù)間的相互轉(zhuǎn)換 1.各種進制數(shù)轉(zhuǎn)換成十進制數(shù) 各種進制數(shù)轉(zhuǎn)換成十進制數(shù)的方法是:將各進制數(shù)先按權(quán)展成多項式,再利用十進制運算法則求和,即可得到該數(shù)對應的十進制數(shù)。 例1: 將數(shù)1001.101B,246.12Q,2D07.AH轉(zhuǎn)換為十進制數(shù)。 1001.101B12302202112012102-212-3 810.50.1259.625,246.12Q28248168018-128-2 1283260.1250.03125166.15625 2D07.AH216313162016171601016-1 8192332870.62511527.625,2.十進制數(shù)轉(zhuǎn)換為二、八、十六進制數(shù) 任一十進制數(shù)N轉(zhuǎn)換成q進制數(shù),先將整數(shù)部分與小數(shù)部分分為兩部分,并分別進行轉(zhuǎn)換,然后再用小數(shù)點將這兩部分連接起來。 1)整數(shù)部分轉(zhuǎn)換 整數(shù)部分轉(zhuǎn)換步驟為: 第1步:用去除N的整數(shù)部分,得到商和余數(shù),記余數(shù)為進制整數(shù)的最低位數(shù)碼K0;,第2步:再用q去除得到的商,求出新的商和余數(shù),余數(shù)又作為q進制整數(shù)的次低位數(shù)碼K1; 第3步:再用q去除得到的新商,再求出相應的商和余數(shù),余數(shù)作為q進制整數(shù)的下一位數(shù)碼Ki; 第4步:重復第3步,直至商為零,整數(shù)轉(zhuǎn)換結(jié)束。此時,余數(shù)作為轉(zhuǎn)換后q進制整數(shù)的最高位數(shù)碼K n-1。,2|168 2|84 余數(shù)0, K00 2|42 余數(shù)0, K10 2|21 余數(shù)0, K20 2|10 余數(shù)1, K31 2|5 余數(shù)0, K40 8|168 2|2 余數(shù)1, K51 8|21余數(shù)0, K00 16|168 2|1 余數(shù)0, K60 8|2余數(shù)5, K1516 16 |10余數(shù)8, K08 0 余數(shù)1, K71 0余數(shù)2 , K22 0 余數(shù)10,K1A 16810101000B 168250Q 168A8H,2)小數(shù)部分轉(zhuǎn)換 小數(shù)部分轉(zhuǎn)換步驟為: 第1步:用q去乘N的純小數(shù)部分,記下乘積的整數(shù)部分,作為q進制小數(shù)的第1個數(shù)碼K-1; 第2步:再用q去乘上次積的純小數(shù)部分,得到新乘積的整數(shù)部分,記為q進制小數(shù)的次位數(shù)碼K-i; 第3步:重復第2步,直至乘積的小數(shù)部分為零,或者達到所需要的精度位數(shù)為止。此時,乘積的整數(shù)位作為q進制小數(shù)位的數(shù)碼K-m。,例3: 將0.686轉(zhuǎn)換成二、八、十六進制數(shù)(用小數(shù)點后5位表示)。 0.6862=1.372K-1=1 0.6868=5.488K-1=5 0.68616=10.976K-1=A 0.3722=0.744K-2=0 0.4888=3.904K-2=3 0.97616=15.616K-2=F 0.7442=1.488K-3=1 0.9048=7.232K-3=7 0.61616=9.856K-3=9 0.4882=0.976K-4=0 0.2328=1.856K-4=1 0.85616=13.696K-4=D 0.9762=1.952K-5=1 0.8568=6.848K-5=6 0.69616=11.136K-5=B 0.6860.10101B 0.6860.53716Q 0.6860.AF9DBH,例4: 將168.686轉(zhuǎn)換為二、八、十六進制數(shù)。根據(jù)例2、例3可得: 168.68610101000.10101B 168.686250.53716Q 168.686A8.AF9DBH,從以上例子可以看出,二進制表示的數(shù)愈精確,所需的數(shù)位就愈多,這樣,不利于書寫和記憶,而且容易出錯。另外,若用同樣數(shù)位表示數(shù),則八、十六進制數(shù)所表示數(shù)的精度較高。所以在匯編語言編程中常用八進制或十六進制數(shù)作為二進制數(shù)的縮碼,來書寫和記憶二進制數(shù),便于人機信息交換。在MCS-51系列單片機編程中,通常采用十六進制數(shù)。,3.二進制數(shù)與八進制數(shù)之間的相互轉(zhuǎn)換 由于238,故可采用“合3為1”的原則,即從小數(shù)點開始分別向左、右兩邊各以3位為1組進行二八換算;若不足3位的以0補足,便可將二進制數(shù)轉(zhuǎn)換為八進制數(shù)。 例5: 將1111011.0101B轉(zhuǎn)換為八進制數(shù)。 解: 根據(jù)“合3為1”和不足3位以0補足的原則,將此二進制數(shù)書寫為: 001 111 011 . 010 100 1 7 3 2 4 因此,其結(jié)果為1111011.0101B173.24Q。,例6: 將1357.246Q轉(zhuǎn)換成二進制數(shù)。 解: 根據(jù)“1分為3”的原則,可將該十進制數(shù)書寫為: 1 3 5 7 . 2 6 001 011 101 111 010 100 110 其結(jié)果為1357.246Q1011101111.01010011B。 4.二進制數(shù)與十六進制數(shù)之間的相互轉(zhuǎn)換 由于24=16,故可采用“合4為1”的原則,從小數(shù)點開始分別向左、右兩邊各以4位為1組進行二十六換算;若不足4位以0補足,便可將二進制數(shù)轉(zhuǎn)換為十六進制數(shù)。,例7: 將1101000101011.001111B轉(zhuǎn)換成十六進制數(shù)。 解: 根據(jù)“合4為1”的原則,可將該二進制數(shù)書寫為: 0001 1010 0010 1011 0011 1100 1 A 2 B 3 C 其結(jié)果為1101000101011.001111B=1A2B.3CH。 反之,采用“1分為4”的原則,每位十六進制數(shù)用4位二進制數(shù)表示,便可將十六進制數(shù)轉(zhuǎn)換為二進制數(shù)。,例8: 將4D5E.6FH轉(zhuǎn)換成二進制數(shù)。 解: 根據(jù)“1分為4”的原則,可將該十六進制數(shù)書寫為: 4 D 5 E 6 F 0100 1101 0101 1110 0110 1111 其結(jié)果為4D5E.6FH100110101011110.01101111B。,1.2 二進制數(shù)的運算,1.2.1二進制數(shù)的算術(shù)運算 二進制數(shù)不僅物理上容易實現(xiàn),而且算術(shù)運算也比較簡單,其加、減法遵循“逢2進1”、“借1當2”的原則。 以下通過4個例子說明二進制數(shù)的加、減、乘、除運算過程。 1. 二進制加法 1 位二進制數(shù)的加法規(guī)則為: 000 011 101 1110 (有進位),例1: 求11001010B11101B。 解: 被加數(shù) 11001010 加數(shù) 11101 進位 ) 00110000 和 11100111 則11001010B11101B11100111B。 由此可見,兩個二進制數(shù)相加時,每1位有3個數(shù)參與運算(本位被加數(shù)、加數(shù)、低位進位),從而得到本位和以及向高位的進位。,2. 二進制減法 1位二進制數(shù)減法規(guī)則為: 101 110 000 011 (有借位) 例2: 求10101010B10101B。 解: 被減數(shù) 10101010 減數(shù) 10101 借位 ) 00101010 差 10010101 則10101010B10101B10010101B。,3.二進制乘法 1 位二進制乘法規(guī)則為: 000 010 100 111 例3: 求110011B1011B。 解: 被乘數(shù) 110011 乘數(shù) ) 1011 110011 110011 000000 ) 110011 積 1000110001,則110011B1011B1000110001B。 由運算過程可以看出,二進制數(shù)乘法與十進制數(shù)乘法相類似,可用乘數(shù)的每1位去乘被乘數(shù),乘得的中間結(jié)果的最低有效位與相應的乘數(shù)位對齊,若乘數(shù)位為1,則中間結(jié)果為被乘數(shù);若乘數(shù)位為0,則中間結(jié)果為0,最后把所有中間結(jié)果同時相加即可得到乘積。顯然,這種算法計算機實現(xiàn)時很不方便。對于沒有乘法指令的微型計算機來說,常采用比較、相加、與部分積右移相結(jié)合的方法進行編程來實現(xiàn)乘法運算。,4.二進制除法 二進制除法的運算過程類似于十進制除法的運算過程。 例4: 求 100100B101B。 解: 000111 101 100100 101 1000 101 110 101 1,則100100B101B=111B,余1B。 二進制數(shù)除法是二進制數(shù)乘法的逆運算,在沒有除法指令的微型計算機中,常采用比較、相減、余數(shù)左移相結(jié)合的方法進行編程來實現(xiàn)除法運算。由于MCS-51系列單片機指令系統(tǒng)中包含有加、減、乘、除指令,因此給用戶編程帶來了許多方便,同時也提高了機器的運算效率。,1.2.2 二進制數(shù)的邏輯運算 1.“與”運算(AND) “與”運算又稱邏輯乘,運算符為或?!芭c”運算的規(guī)則如下: 000 01100 111 例5: 若二進制數(shù)X10101111B,Y01011110B,求 XY。 10101111 01011110 00001110 則XY00001110B。,2. “或”運算(OR) “或”運算又稱邏輯加,運算符為或。“或”運算的規(guī)則如下: 000 01101 111 例6: 若二進制數(shù)X10101111B,Y01011110B,求X Y。 10101111 01011110 11111111 則XY11111111B。,3.“非”運算(NOT) “非”運算又稱邏輯非,如變量A的“非”運算記作 ?!胺恰边\算的規(guī)則如下: 例7: 若二進制數(shù)A10101111B,求 。 01010000B 由此可見,邏輯“非”可使A中各位結(jié)果均發(fā)生反變化,即0變1,1變0。,4.“異或”運算(XOR) “異或”運算的運算符為或,其運算規(guī)則如下: 0 00 0 11 01 1 10 例8: 若二進制數(shù)X10101111B,Y01011110B,求 X Y。 10101111 01011110 11110001 則X Y11110001B。,1.3 帶符號數(shù)的表示方法 原碼、反碼、補碼,1.3.1 機器數(shù)與真值 在1.2.1、1.2.2節(jié)中討論的二進制數(shù)運算均為無符號數(shù)運算,但實際的數(shù)值是帶有符號的,既可能是正數(shù),也可能是負數(shù),前者符號用“”號表示,后者符號用“”號表示,運算的結(jié)果也可能是正數(shù),也可能是負數(shù)。于是在計算機中就存在著如何表示正、負數(shù)的問題。,由于計算機只能識別0和1,因此,在計算機中通常把一個二進制數(shù)的最高位作為符號位,以表示數(shù)值的正與負(若用8位表示一個數(shù),則D7位為符號位;若用16位表示一個數(shù),則D15位為符號位),并用0表示“”;用1表示“”。 例如:N11011, N2-1011在計算機中用8位二進制數(shù)可分別表示為: D7 D6 D5 D4 D3 D2 D1 D0,符號,數(shù)值部分,1.3.2原碼、補碼與反碼 1.原碼 正數(shù)的符號位用0表示,負數(shù)的符號位用1表示,數(shù)值部分用真值的絕對值來表示的二進制機器數(shù)稱之為原碼,用X原表示。 (1)正數(shù)的原碼。,D7 D6 D5 D4 D3 D2 D1 D0,符號,數(shù)值部分,若真值為正數(shù)XK n-2 K n-3K1K0(即n-1位二進制正數(shù)), 則X原0K n-2 K n-3K1K0 (14) 2) 負數(shù)的原碼。 若真值為負數(shù)XK n-2 K n-3K1K0(即n-1位二進制負數(shù)), 則X原 0K n-2 K n-3K1K0 2 n-1 K n-2 K n-3K1K0 2 n-1 (K n-2 K n-3K1K0) 2 n-1 X (15),例如:115和-115在計算機中(設(shè)機器字長為8位),其原碼可分別表示為: +115原01110011B;-115原11110011B (3)零的原碼。 若真值為零,則原碼有兩種表示法: +0原00000 -0原10000 由此可得原碼與真值的關(guān)系為 X, 0X2n 2 n-1X 2nX0 (16),X原,2. 補碼與反碼 1)補碼的概念 在日常生活中有許多“補”數(shù)的事例。如鐘表,假設(shè)標準時間為6點整,而某鐘表卻指在9點,若要把表撥準,可以有兩種撥法,一種是倒撥3小時,即936;另一種是順撥9小時,即996。盡管將表針倒撥或順撥不同的時數(shù),但卻得到相同的結(jié)果,即93與99是等價的。這是因為鐘表采用12小時進位,超過12就從頭算起,即:99126,該12稱之為模(mod)。,模(mod)為一個系統(tǒng)的量程或此系統(tǒng)所能表示的最大數(shù),它會自然丟掉,如: 93991266 (mod12 自然丟掉) 通常稱9是3在模為12時的補數(shù)。于是,引入補數(shù)后使減法運算變?yōu)榧臃ㄟ\算。 例如: 1171154 (mod12) 5是7在模為12時的補數(shù),減7與加5的效果是一樣的。,一般情況下,任一整數(shù)X,在模為K時的補數(shù)可用下式表示: X補數(shù)XK(modK) X 0XK K-|X| KX0 (17),=,由補碼的概念引伸,當用n位二進制數(shù)表示整數(shù)X(1位為符號位,n-1位為數(shù)值位),模為2n時,數(shù)的補碼可表示為: X 0X2 n-1 2nX 2 n-1X0,(mod2n),X補,(18),從式(18)可見: 正數(shù)的補碼與其原碼相同,即X補X原; 零的補碼為零,+0補-0補00000; 負數(shù)才有求補碼的問題。 2)負數(shù)補碼的求法 補碼的求法一般有兩種: 用補碼定義式: X補2nX2n|X| -2 n-1X0(整數(shù)) (19),在用補碼定義式求補碼的過程中,由于做一次減法很不方便,故該法一般不用。 例如:X-0101111B, n8,則 X補=28(-0101111B) 100000000B0101111B 11010001B(mod28) 用原碼求反碼,再在數(shù)值末位加1可得到補碼,即:X補X反1。,3) 反碼 一個正數(shù)的反碼,等于該數(shù)的原碼;一個負數(shù)的反碼,等于該負數(shù)的原碼符號位不變(即為1),數(shù)值位按位求反(即0變1,1變0);或者在該負數(shù)對應的正數(shù)原碼上連同符號位逐位求反。反碼用X反表示。 X 0X2 n-1 (2n-1)+X -2 n-1X0 (110),X反,從式(110)可見: 正數(shù)的反碼:X反X原; 負數(shù)的反碼:X反 零的反碼:+0反00000 -0反11111 例1: 假設(shè)X1+83, X2-76,當用8位二進制數(shù)表示一個數(shù)時,求X1、X2的原碼、反碼及補碼。 解: X1原X1反X1補01010011B X2原11001100B,X2反10110011B X2補X反110110100B 綜上所述可歸納為: 正數(shù)的原碼、反碼、補碼就是該數(shù)本身; 負數(shù)的原碼其符號位為1,數(shù)值位不變; 負數(shù)的反碼其符號位為1,數(shù)值位逐位求反; 負數(shù)的補碼其符號位為1,數(shù)值位逐位求反并在末位加1。,1.3.3 補碼的運算規(guī)則與溢出判別 1. 補碼的運算規(guī)則 補碼的運算規(guī)則如下: 1)X+Y補X補Y補 該運算規(guī)則說明:任何兩個數(shù)相加,無論其正負號如何,只要對它們各自的補碼進行加法運算,就可得到正確的結(jié)果,該結(jié)果是補碼形式。,2)X-Y補X補-Y補 該運算規(guī)則說明:任意兩個數(shù)相減,只要對減數(shù)連同“-”號求補,就變成被減數(shù)補與-減數(shù)補相加,該結(jié)果是補碼形式。 3)X補補X原 對于運算產(chǎn)生的補碼結(jié)果,若要轉(zhuǎn)換為原碼表示,則正數(shù)的結(jié)果X補X原;負數(shù)結(jié)果,只要對該補結(jié)果再進行一次求補運算,就可得到負數(shù)的原碼結(jié)果。,例2: 用補碼求X+Y。 解: 若X補00100101, Y補00110011,可得 X+Y補X補+Y補 00100101+0011001101011000 由于符號位為0是正數(shù),所以 X+Y原X+Y補01011000 則 X+Y(01011000)288,例3: 用補碼求X-Y。 解: 若-Y補11001101,可得 X-Y補X補+-Y補 00100101+1100110111110010 由于符號位為1是負數(shù),所以 X-Y原X-Y補補10001110 則 X-Y-(00001110)2-14,例4: 用補碼求Y-X。 解: 若-X補11011011,可得 Y-X補Y補+-X補 00110011+11011011100001110 (模28自然丟失) 則 Y-X(00001110)2+14,例5: 用補碼求(-X)+(-Y)。 解: (-X)+(-Y)補-X補+-Y補 11011011+11001101110101000 (模28自然丟失) (-X)+(-Y)原(-X)+(-Y)補補11011000 則(-X)+(-Y)-(01011000)2-88 上述運算結(jié)果是正確的,但有時在補碼運算中可能會出現(xiàn)錯誤的結(jié)果,請看下面例子。,例6: 設(shè)X+100,Y+50,用補碼運算求X+Y,(-X)+(-Y)。 解: X補01100100Y補00110010 -X補10011100-Y補11001110 X+Y補X補+Y補01100100+0011001010010110 X+Y原X+Y補補11101010 X+Y-(01101010)2-106 而-X補+-Y補10011100+1100111001101010 -X補+-Y補原(01101010)201101010 (-X)+(-Y)+(01101010)+106,2. 溢出的判別 計算機中判別溢出的方法通常采用雙高位判別法。雙高位判別法利用符號位(K n-1位) 及最高數(shù)值位(K n-2位)的進位情況來判斷是否發(fā)生了溢出。為此,需引進兩個符號:CS和CP。 CS :若符號位發(fā)生進位,則CS 1;否則CS 0。 CP :若最高數(shù)值位發(fā)生進位,則CP 1;否則CP 0。,當兩個正數(shù)補碼相加時,若數(shù)值部分之和大于2n-1,則數(shù)值部分必有進位CP1;而符號位卻無進位CS0。這時CSCP的狀態(tài)為“01”,發(fā)生正溢出。 當兩個負數(shù)補碼相加時,若數(shù)值部分絕對值之和大于2n-1,則數(shù)值部分補碼之和必小于2n-1,CP0;而符號位肯定有進位CS1,這時CSCP的狀態(tài)為“10”,發(fā)生負溢出。 當不發(fā)生溢出時,CS和CP的狀態(tài)是相同的,即CSCP的狀態(tài)為“00”或“11”。,例 7: 01011001 (+89) 10010010 (-110) 01101100 (+108) 10100100 (-92) +)011110000 (進位) +)1 00000000 (進位) 011000101 (-59) 1 00110110 (+54) CS0,CP1,正溢出 CS1,CP0,負溢出,例8: 00110010 (+50) 11101100 (-20) 01000110 (+70) 11100010 (-30) +)0 00001100 (進位) +)1 11000000 (進位) 0 01111000(+120) 1 11001110(-50) CS0,CP0,無溢出 CS1,CP1,無溢出,例9: 01010101 (+85) 10111100 (-68) 11011101 (-35) 00011101 (+29) +)1 10111010 (進位) +)0 01111000 (進位) 1 00110010(+50) 0 11011001(-39) CS1,CP1,無溢出 CS0,CP0,無溢出,綜上所述,對計算機而言,補碼的引入使帶符號數(shù)的運算都按加法處理。如果C和C的值相等,則表示運算結(jié)果正確,沒有溢出,運算結(jié)果的正與負由符號位決定(如例8、例9);如果CS和CP的值不等,則表示運算結(jié)果不正確,發(fā)生了溢出現(xiàn)象(如例7)。 在計算機中,常用“異或”電路來判別有無溢出發(fā)生,即CSCP1表示有溢出發(fā)生,否則無溢出發(fā)生。,1.4 定點數(shù)與浮點數(shù),1.4.1 定點表示法 在計算機中,如將小數(shù)點的位置固定不變,稱為定點表示法。這個固定的位置是事先約定好的,不必用符號表示。用定點法表示的實數(shù)叫做定點數(shù)。通常,定點表示采用以下兩種方法。,1. 定點整數(shù)表示法 小數(shù)點固定在最低數(shù)值位之后,機器中能表示的所有數(shù)都是整數(shù),這種方法稱之為定點整數(shù)表示法。其格式如下:,其中“.”為設(shè)定的小數(shù)點位置 當用n位表示數(shù)N時,1位為符號位,n1位為數(shù)值位, 則N的范圍是: 2 n-1N2 n-11 (111),若n8,則-128N127;若n16,則32768N32767。 例如: 若N1011011,n8,則在計算機內(nèi)用定點整數(shù)法可將N表示為:,2. 定點小數(shù)表示法 小數(shù)點固定在最高數(shù)值位之前,機器中能表示的所有數(shù)即為純小數(shù),這種方法稱之為定點小數(shù)表示法。其格式如下:,其中“.”為設(shè)定的小數(shù)點位置。 當用n位表示數(shù)N時,1位為符號位,n1位為數(shù)值位, 則N的范圍是: (12 1-n)N12 1-n (112),例如:若N-0.1011011,n8,則在計算機內(nèi)用定點小數(shù)法可將N表示為:,1.4.2 浮點表示法 在計算機中,小數(shù)點位置并不是固定不變的,而是可以改變的,這種表示法稱為浮點表示法。用浮點法表示的實數(shù),叫做浮點數(shù)。 任意一個二進制數(shù)N可以表示成如下形式: NM2E (113) 稱作數(shù)符,表示數(shù)的正、負;E稱為階碼,它前面的符號稱為階符,指明尾數(shù)小數(shù)點向右或向左浮動的方向,而階碼E指明尾數(shù)小數(shù)點移動的位數(shù),所以階符和階碼表明了數(shù)值N小數(shù)點的位置。,設(shè)階碼E的位數(shù)為m位,尾數(shù)M的位數(shù)為n位,則浮點數(shù)N的取值范圍為: 2 -n2 -(2m-1)|N|(12-n)2(2m-1) (114) 例如:對16位表示的浮點原碼數(shù),當m7,n7時,它所能表示的最大絕對值為: |N|max(12-n)2(2m-1) (12-7)2(27-1)2127 它所能表示的除0以外的最小絕對值為: |N|min2-n2-(2m-1)2-72-(27-1) 2-134 (115),由此可見,由于浮點數(shù)能表示的數(shù)值范圍很大,因此,在科學計算時不需要比例因子。為了提高精度,發(fā)揮尾數(shù)有效位的最大作用,還規(guī)定二進制浮點數(shù)其尾數(shù)數(shù)字部分原碼的最高位為1,叫做規(guī)格化表示法。如:0.0010101可表示為2-20.1010100稱為規(guī)格化浮點數(shù)。,1.5 BCD碼和ASCII碼,1.5.1 BCD碼(BinaryCodedDecimal) 二進制數(shù)以其物理易實現(xiàn)和運算簡單的優(yōu)點在計算機中得到了廣泛應用,但人們?nèi)粘A晳T最熟悉的還是十進制。為了既滿足人們的習慣,又能讓計算機接受,便引入了BCD碼。它用二進制數(shù)碼按照不同規(guī)律編碼來表示十進制數(shù),這樣的十進制數(shù)的二進制編碼,既具有二進制的形式,又具有十進制的特點,便于傳遞處理。,1位十進制數(shù)有09共10個不同數(shù)碼,需要由4位二進制數(shù)來表示。4位二進制數(shù)有16種組合,取其10種組合分別代表10個十進制數(shù)碼。最常用的方法是8421BCD碼,其中8、4、2、1分別為4位二進制數(shù)的位權(quán)值。表12給出了十進制數(shù)和8421BCD碼的對應關(guān)系。,表 12842
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 退訂協(xié)議書范本
- 公司股東合同協(xié)議
- 舊房折建協(xié)議書
- 進口車銷售合同協(xié)議
- 連鎖披薩店轉(zhuǎn)讓合同協(xié)議
- 委托代理買房合同書
- 進出口牛肉銷售合同協(xié)議
- 《輿論學》本科筆記
- 轉(zhuǎn)讓合同解除協(xié)議書范本
- 個體員工合同協(xié)議書
- 第7課全球航路的開辟和歐洲早期殖民擴張(課件)-【中職專用】《世界歷史》趣味課堂同步教學課件(高教版2023基礎(chǔ)模塊)
- MOOC 寄生蟲病與食品安全-華中科技大學 中國大學慕課答案
- MOOC 化學與社會-大連理工大學 中國大學慕課答案
- MOOC 國際交流學術(shù)英文寫作-湖南大學 中國大學慕課答案
- 兒童及青少年知情同意書版本
- 建材工業(yè)設(shè)備安裝工程施工及驗收標準
- 拒絕欺凌與善同行
- 不同造林模式對桉樹人工林林下植物物種多樣性的影響
- 國旗下講話-5月19日助殘日國旗下講話稿:同享一片藍天
- 產(chǎn)品合格證出廠合格證A4打印模板
- 表1網(wǎng)格化治理工作村(居)民基本信息統(tǒng)計表
評論
0/150
提交評論