計算機中數(shù)的表示及運算_第1頁
計算機中數(shù)的表示及運算_第2頁
計算機中數(shù)的表示及運算_第3頁
計算機中數(shù)的表示及運算_第4頁
計算機中數(shù)的表示及運算_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機中數(shù)的表示及運算張曉軍 編寫引言    人類在文字出現(xiàn)以前,就已經(jīng)會用道具(如繩子打結)計數(shù)了.在日常生活中,我們每天都在與數(shù)字打交道,而數(shù)字與數(shù)制是密不可分的.比如:60秒為1分,60分為1小時,其特點是"逢60進1",可取的數(shù)字是0,1,2,.,59,共有60個,這就是"六十進制".再比如:24小時為1天,這是24進制;7天為1星期,這是7進制;12個為1打,這是12進制;10mm為1cm,10cm為1dm,10dm為1m,這是我們最為熟悉的10進制.不管是什么進制,其基數(shù)(如60進制的基數(shù)就是60,10進制的基數(shù)

2、就是10)正好等于該數(shù)制中不同"數(shù)字符號"的個數(shù)(如60進制中采用0,1,2,.,59共60個不同的數(shù)字符號,10進制中采用0,1,2,.,9共10個不同的數(shù)字符號).一、常用數(shù)制及其相互轉換    在數(shù)制系統(tǒng)中,各位數(shù)字所表示的值不僅與該數(shù)字有關,而且與它所在的位置有關.例如,在10進制數(shù)123中,百位上的1表示1個100,十位上的2表示2個10,個位上的3表示3個1,因此,有:123=1*100+2*10+3*1,其中100,10,1被稱為百位、十位、個位的權。十進制中,個、十、百、千、萬等各數(shù)位的權分別是1,10,100,1000,100

3、00,一般地,寫成10的冪,就是100,101,102,103,104,;10則被稱為十進制的基數(shù)1.1 十進制數(shù)特點:采用0,1,2,3,4,5,6,7,8,9共10個不同的數(shù)字符號,并且是"逢十進一,借一當十".對于任意一個十進制數(shù),都可以表示成按權展開的多項式。例如:1999=1*103+9*102+9*101+9*1002003=2*103+0*102+0*101+3*10048.25=4*101+8*100+2*10-1+5*10-21.2 二進制數(shù)在電子計算機中采用的是二進制.二進制數(shù)只需2個不同的數(shù)字符號:0和1,并且是"逢二進一,借一當二"

4、;,它的基數(shù)是2.對于二進制數(shù),其整數(shù)部分各數(shù)位的權,從最低位開始依次是1,2,4,8,寫成2的冪,就是20,21,22,23,;其小數(shù)部分各數(shù)位的權,從最高位開始依次是0.5,0.25,0.125,,寫成2的冪,就是2-1,2-2,2-3,.對于任意一個二進制數(shù),也都可以表示成按權展開的多項式。例如:(10110101)2=1*27+0*26+1*25+1*24+0*23+1*22+0*21+1*20(10.11)2=1*21+0*20+1*2-1+1*2-2為什么人們在計算機中采用二進制?這是因為,二進制數(shù)具有以下一些重要特點:(1)二進制數(shù)只含有兩個數(shù)字0和1,因此可用大量存在的具有兩個

5、不同的穩(wěn)定物理狀態(tài)的元件來表示.例如,可用指示燈的不亮和亮,繼電器的斷開和接通,晶體管的斷開和導通,磁性元件的反向和正向剩磁,脈沖電位的低和高等等,來分別表示二進制數(shù)字0和1.計算機中采用具有兩個穩(wěn)定狀態(tài)的電子或磁性元件表示二進制數(shù),這比十進制的每一位要用具有十個不同的穩(wěn)定狀態(tài)的元件來表示,實現(xiàn)起來要容易得多,工作起來也穩(wěn)定得多.(2)二制數(shù)的運算規(guī)則簡單,使得計算機中的運算部件的結構相應變得比較簡單.二進制數(shù)的加法和乘法的運算規(guī)則只有4條:           0+0=0  0+1=

6、1  1+0=1  1+1=10           0*0=0  0*1=0  1*0=0  1*1=1實際上,二進制數(shù)的乘法可以通過簡單的移位和相加來實現(xiàn)(3)二進制數(shù)的兩個數(shù)字0和1與邏輯代數(shù)的邏輯變量取值一樣,從而可采用二進數(shù)進行邏輯運算,這樣就可以應用邏輯代數(shù)作為工具來分析和設計計算機中的邏輯電路,使得邏輯代數(shù)成為計算機設計的數(shù)學基礎.1.3 二進制數(shù)與十進制數(shù)間的相互轉換(1)二進制數(shù)轉換成十進制數(shù)乘權求和,即將二進制數(shù)按權展開求和。

7、例1 把二進制數(shù)1101.11轉換成十進制數(shù)(1101.11)2=1*23+1*22+0*21+1*20+1*2-1+1*2-2            =8+4+0+1+0.5+0.25            =13.75(2)十進制數(shù)轉換成二進制數(shù)整數(shù)部分輾轉除以2取余,小數(shù)部分輾轉乘以2取整即將十進制整數(shù)除以2,得到一個商和一個余數(shù);再將商除以2,又得到一個商和一個余數(shù);以

8、此類推,直到商等于零為止。每次得到的余數(shù)的倒排列,就是對應二進制數(shù)的各位數(shù)。例2 把十進制數(shù)37轉換成二進制數(shù)于是得:(37)10=(100101)2    十進制小數(shù)轉換成二進制小數(shù)是用“乘2取整法”。即用2逐次去乘十進制小數(shù),將每次得到的積的整數(shù)部分按各自出現(xiàn)的先后順序依次排列,就得到相對應的二進制小數(shù)。例3 把(0.6875)10轉換成二進制數(shù)設(0.6875)10=a-1*2-1+a-2*2-2+a-m*2-m于是得:(0.6875)10=(0.1011)2說明:一個有限的十進制小數(shù)并非一定能夠轉換成一個有限的二進制小數(shù),即上述過程的乘積的小數(shù)部分可能永遠

9、不等于0,這時我們可按要求進行到某一精確度為止.如(0.1)10=(0.000110011001100110011001100.)2如果一個十進制數(shù)既有整數(shù)部分又有小數(shù)部分,則可將整數(shù)部分和小數(shù)部分分別進行轉換,然后再將兩部分合起來.如(37.6875)10=(100101.1011)21.4 八進制數(shù)與十六進制數(shù)    在計算機內(nèi)部,一切信息的存儲、處理與傳送均采用二進制的形式。但由于二進制數(shù)所需位數(shù)較多,閱讀與書寫很不方便,為此,在閱讀與書寫時又通常用十六進制或八進制來表示,這是因為十六進制和八進制與二進制之間有著非常簡單的對應關系  &#

10、160; 八進制數(shù)的基數(shù)是8,有8個基本數(shù)字:0,1,2,3,4,5,6,7,并且"逢八進一,借一當八".   由于八進制數(shù)的基數(shù)8是二進制數(shù)的基數(shù)2的3次冪,即23=8,所以一位八進制數(shù)相當于3位二進制數(shù),這樣使得八進制數(shù)與二進制數(shù)之間的轉換十分方便.    十六進制數(shù)的基數(shù)是16,有16個基本數(shù)字:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,并且"逢十六進一,借一當十六".    由于十六進制數(shù)的基數(shù)16是二進制數(shù)的基數(shù)2的4次冪,即24=1

11、6,所以一位八進制數(shù)相當于4位二進制數(shù),這樣使得十六進制數(shù)與二進制數(shù)之間的轉換十分方便.進制轉換對照表二進制八進制十進制十六進制00000000001111001022200113330100444010155501106660111777100010881001119910101210A10111311B11001412C11011513D11101614E11111715F10000201610100012117111001022181210011231913例4 把(56.103)8轉換成二進制數(shù)(一位變?nèi)?56.103101110.001000011所以(56.103)8=(1011

12、10.001000011)2例5 把(11101.1101)2轉換成八進制數(shù)(三位變一位)以小數(shù)點為中心,向兩邊每隔3位分組(不足3位的,在外邊補0):011101.11010035.64所以(11101.1101)2=(35.64)8例6 把(3AD.B8)16轉換成二進制數(shù)(一位變四位)3AD.B8001110101101.10111000所以(3AD.B8)16=(1110101101.10111)2例7 把(1111100111.111111)2轉換成十六進制數(shù)(四位變一位)以小數(shù)點為中心,向兩邊每隔4位分組(不足4位的,在外邊補0):001111100111.111111003E7.

13、FC所以(1111100111.111111)2=(3E7.FC)16其他進制數(shù)與十進制數(shù)之間的轉換    把其他進制數(shù)轉換成十進制數(shù),都用乘權求和的方法;    把十進制數(shù)轉換成其他進制數(shù),都用整數(shù)部分輾轉除以其他進制數(shù)的基數(shù)取余,小數(shù)部分輾轉乘以其他進制數(shù)的基數(shù)取整的方法例8 把(17.26)8轉換成十進制數(shù)(乘權求和)(17.26)8=1*81+7*80+2*8-1+6*8-2        =8+7+2*0.1256*0.015625  

14、      =15.34375例9 把(65535)10轉換成16進制數(shù)(輾轉除以16取余)所以(65535)10=(FFFF)16二、計算機中數(shù)的表示    在計算機中所有的數(shù)據(jù)、指令以及符號等都是用特定的二進制代碼表示的。       我們把一個數(shù)在計算機內(nèi)被表示的二進制形式稱為機器數(shù),該數(shù)稱為這個機器數(shù)的真值。機器數(shù)具有下列特點: (1)由于計算機設備的限制和操作上的便利,機器數(shù)有固定的位數(shù)。它表示的數(shù)受到固定位數(shù)的限制,具有一定的范圍,超過這個范圍就會產(chǎn)生“

15、溢出”。例如,一個8位機器數(shù),所能表示的無符號整數(shù)的最大值是“11111111”,即十進制數(shù)255,如果超過這個數(shù)就會“溢出”。(2)機器數(shù)能表示數(shù)的符號(正、負或0)。通常是用機器數(shù)中規(guī)定的符號位(一般是最高位)取0或1表示數(shù)的正或負。例如,一個8位機器數(shù),其最高位是符號位,那么在定點整數(shù)原碼表示的情況下,對于00101110和10010011,其真值分別為十進制數(shù)+46和-19。(3)機器數(shù)中,采用定點或浮點方式來表示小數(shù)點的位置。2.1 原碼,反碼和補碼    在計算機中參加運算的數(shù)有正負之分,通常在計算機中我們用X=X0X1X2XN-1來表示一個二進制數(shù),

16、并規(guī)定當X0=0時X為正數(shù),X0=1時X為負數(shù).在計算機中這種表示法有原碼,補碼和反碼三種。  1.原碼    原碼的定義:其最高位為符號位,0表示正,1表示負,其余位數(shù)表示該數(shù)的絕對值。通常用X原表示X的原代碼。例如:假設,因為(17)10=(10001)2,(39)10=(100111)2,那么+17原=00010001,-39原=10100111+0原=00000000,-0原=10000000,因此,0的表示有兩種,"浪費"了資源.當機器數(shù)的位數(shù)是8時,原碼表示范圍是-127,127。原碼的表示法簡單易懂,但是它最大的缺點是運

17、算復雜。  2.反碼    反碼的定義:正數(shù)的反碼與原碼相同,負數(shù)的反碼是把其原碼除符號位外的各位取反(即0變1,1變0).通常用X反表示X的反碼。例如:+45反=+45原=00101101由于-32原=10100000,所以-32反=11011111+0反=+0原=00000000,-0原=10000000,-0反=11111111,因此0的表示也有兩種根據(jù)X反所能表示的整數(shù)范圍公式,我們可以計算出當n=8時反碼表示范圍是-127,127。   3.補碼     補碼的定義:正數(shù)的補碼與原碼相

18、同,負數(shù)的反碼是在其反碼的最低有效位上加1。通常用X補表示X的補碼。例如:+14補=14原=00001110由于-36原=10100100,而-36反=11011011,所以-36補=11011100+0補=+0原=00000000,-0反=11111111,規(guī)定-0補=00000000(溢出部分忽略),這樣在用補碼表示時,0的表示方法就唯一了.根據(jù)X補所能表示的整數(shù)范圍公式,我們可以計算出當n=8時補碼表示范圍是-128,127    用補碼進行加減運算是很簡單的,公式為X+Y補=X補+Y補X-Y補=X補+-Y補加法公式是非常簡單的,在減法中我們可以根據(jù)Y補求-

19、Y補:將Y補連同符號位一起按位求反后末位加1可得-Y補。在運算中符號位怎么辦?符號位參加運算,符號位相加,若有進位,則進位舍去。例10 已知X=6,Y=2,求X-Y解:X補=00000110,Y補=00000010,-Y補=11111110最后舍棄符號位上的進位,得X-Y補=00000100,即X-Y=4例11 已知X=-19,Y=-30,求X+Y解:X補=11101101,Y補=11100010,最后舍棄符號位上的進位,得X+Y補=11001111,即X+Y=-49    補碼的重大意義 從上面例子可見,加法和減法統(tǒng)一成了加法,再由于乘除可通過移位和加減來實現(xiàn),

20、于是就使四則算術運算在計算機中能轉化成對補碼進行簡單的移位和相加,從而大大減化了計算機運算部件的電路設計.2.2 數(shù)的定點和浮點表示   在計算機中,針對小數(shù)點的處理有兩種方法:定點表示法與浮點表示法。  1.定點表示法    定點表示法就是小數(shù)點約定在機器數(shù)某一固定的位置上。如果將小數(shù)點約定在符號位和數(shù)值的最高位之間,這時的數(shù)值為定點有符號純小數(shù)。例如:X補=01010000小數(shù)點位置這時X=0.625    如果將小數(shù)點約定在數(shù)值的最低位之后,這時的數(shù)值均為整數(shù)。例如:X補=11010000 

21、;               小數(shù)點位置這時X=-48對于8位定點有符號整數(shù),用補碼表示,最大數(shù)M補=01111111,即M=+(27-1)=+127最小數(shù)N補=10000000,即N=-27=-128所以對于8位定點有符號整數(shù)(用補碼表示)的范圍是-128+127,共28=256個不同的整數(shù),在PASCAL語言中,shortint類型的數(shù)據(jù)即是1字節(jié)(8位)定點有符號整數(shù);而對于8位定點無符號(沒有符號位,即約定為非負數(shù))整數(shù)(用原碼表示即可,這里補碼

22、與原碼相同)的范圍是028-1,即0255,共28=256個不同的整數(shù),在PASCAL語言中,byte類型的數(shù)據(jù)即是1字節(jié)(8位)定點無符號整數(shù);同理可得:16位定點有符號整數(shù)(用補碼表示)的范圍是-215+(215-1),即-32768+32767,在PASCAL語言中,integer類型的數(shù)據(jù)即是2字節(jié)(16位)定點有符號整數(shù);而對于16位定點無符號整數(shù)(用原碼表示即可)的范圍是0216-1,即065535,共216=65536個不同的整數(shù),在PASCAL語言中,word類型的數(shù)據(jù)即是2字節(jié)(16位)定點無符號整數(shù);32位定點有符號整數(shù)(用補碼表示)的范圍是-231+(231-1),即-2

23、147483648+2147483647,在PASCAL語言中,longint類型的數(shù)據(jù)即是4字節(jié)(32位)定點有符號整數(shù);在PASCAL語言中,定義了上述5種類型的整數(shù)數(shù)據(jù)類型,列表如下:名稱類型標識符大小最小值最大值不同數(shù)據(jù)個數(shù)字節(jié)型shortint1字節(jié)即8個二進制位-128127256短整型byte1字節(jié)即8個二進制位0255256標準型integer2字節(jié)即16個二進制位-327683276765536字  型word2字節(jié)即16個二進制位06553565536長整型longint4字節(jié)即32個二進制位-214748364821474836474294967296 

24、; 2.浮點表示法    浮點表示法就是小數(shù)點的位置并不固定。浮點數(shù)在計算機中通常的表示形式為"浮點數(shù)=2的正/負階碼次方*尾數(shù)"其中階碼是個正整數(shù),尾數(shù)是個小數(shù),我們規(guī)定尾數(shù)的區(qū)間為0.5,1),如果尾數(shù)不在此區(qū)間,那我們可通過調(diào)節(jié)階碼來滿足區(qū)間,此方法稱為規(guī)格化。    在計算機中所說的浮點數(shù)就是指小數(shù)點位置不固定的數(shù)。一般地,一個既有整數(shù)部分又有小數(shù)部分的十進制數(shù)D可以表示成如下形式:          

25、60; DR*10N    其中R為一個純小數(shù),N為一個整數(shù)。    如一個十進制數(shù)123.456可以表示成:0.123456*103,十進制小數(shù)0.00123456可以表示成0.123456*10-2。純小數(shù)R的小數(shù)點后第一位一般為非零數(shù)字。    同樣,對于既有整數(shù)部分又有小數(shù)部分的二進制數(shù)口也可以表示成如下形式:              DR*2N  

26、;  其中R為一個二進制定點小數(shù),稱為D的尾數(shù);N為一個二進制定點整數(shù),稱為D的階碼,它反映了二進制數(shù)D的小數(shù)點的實際位置。為了使有限的二進制位數(shù)能表示出最多的數(shù)字位數(shù),定點小數(shù)R的小數(shù)點后的第一位(即符號位的后面一位)一般為非零數(shù)字(即為“1”)。    在計算機中,通常用一串連續(xù)的二進制位來存放二進制浮點數(shù),它的一般結構如圖所示:階符N數(shù)符R            |     階碼部分 

27、60;  |  小數(shù)位  尾數(shù)部分 三、字符與漢字的編碼1字符的編碼    計算機除了用于數(shù)值計算外,還有其他許多方面的應用。因此,計算機處理的不只是一些數(shù)值,還要處理大量符號如英文字母、漢字等非數(shù)值的信息。例如,當你要用計算機編寫文章時,就需要將文章中的各種符號、英文字母、漢字等輸入計算機,然后由計算機進行編輯排版。因此,計算機要對各種文字進行處理。通常,計算機中的數(shù)據(jù)可以分為數(shù)值型數(shù)據(jù)與非數(shù)值型數(shù)據(jù)。其中數(shù)值型數(shù)據(jù)就是常說的“數(shù)”(如整數(shù)、實數(shù)等),它們在計算機中是以二進制形式存放的。而非數(shù)值型數(shù)據(jù)與一般的“數(shù)”不同,通

28、常不表示數(shù)值的大小,而只表示字符或圖形等信息,但這些信息在計算機中也是以二進制形式來表示的。    目前,國際上通用的且使用最廣泛的字符有:十進制數(shù)字符號09,大小寫的英文字母,各種運算符、標點符號等,這些字符的個數(shù)不超過128個。為了便于計算機識別與處理,這些字符在計算機中是用二進制形式來表示的,通常稱之為字符的二進制編碼。    由于需要編碼的字符不超過128個,因此,用七位二進制數(shù)就可以對這些字符進行編碼。但為了方便,字符的二進制編碼一般占八個二進制位,它正好占計算機存儲器的一個字節(jié)。具體的編碼方法,即確定每一個字符的七位二進制

29、代碼。但目前國際上通用的是美國標準信息交換碼(American Standanl Code for Information Interchange ),簡稱為ASCII碼(取英文單詞的第一個字母的組合)。用ASCII表示的字符稱為ASCII碼字符。下表是ASCII碼編碼表:  表中前32個與最后一個是不可打印的控制符號。    特別需要指出的是,十進制數(shù)字字符的ASCII碼與它們的二進制值是有區(qū)別的。例如,十進制數(shù)3的七位二進制數(shù)為(0000011),而十進制數(shù)字字符“3”的ASCII碼為(0110011)2(33)16(51)10,由此可以看出,數(shù)值3與數(shù)字字符“3”在計算機中的表示是不一樣的。數(shù)值3能表示數(shù)的大小,并可以參與數(shù)值運算

溫馨提示

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

評論

0/150

提交評論