




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章微型計算機基礎(chǔ)1.1微型計算機概述1.2微型計算機系統(tǒng)1.3計算機中的數(shù)制及其轉(zhuǎn)換1.4計算機中數(shù)與字符的編碼習題11.1微型計算機概述1.1.1計算機的發(fā)展20世紀40年代,無線電技術(shù)和無線電工業(yè)的發(fā)展為電子計算機的研制準備了物質(zhì)基礎(chǔ),1943年~1946年,美國賓夕法尼亞大學研制的ENIAC(ElectronicNumericalIntegratorAndComputer,電子數(shù)字積分器和計算機)是世界上第一臺電子計算機。當時,第二次世界大戰(zhàn)正在進行,為了完成新武器在彈道問題中許多復(fù)雜的計算,在美國陸軍部的資助下開展了這項研究工作,ENIAC計算機于1945年年底完成,1946年2月正式交付使用。因為ENIAC計算機是最早問世的一臺電子數(shù)字計算機,所以人們認為它是現(xiàn)代計算機的始祖。ENIAC計算機共用18000多個電子管,1500個繼電器,重達30噸,占地170平方米,耗電140kW,每秒鐘能進行5000次加法計算,領(lǐng)導研制的是賓夕法尼亞大學的莫克利(J.W.Mauchly)和??颂?J.P.Eckert)。該計算機存在兩個主要缺點,一是存儲容量太小,只能存20個字長為10位的十進制數(shù);二是用線路連接的方法來編排程序,因此每次解題都要依靠人工改接連線,準備時間大大超過實際計算時間。在研制ENIAC計算機的同時,馮·諾依曼(VonNeumann)與莫爾小組合作研制了EDVAC計算機,該計算機采用了存儲程序方案,其后開發(fā)的計算機都采用這種方式,稱為馮·諾依曼計算機。馮·諾依曼計算機具有如下基本特點:(1)計算機由運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備五部分組成。(2)采用存儲程序的方式,程序和數(shù)據(jù)放在同一個存儲器中,指令和數(shù)據(jù)一樣可以送到運算器中運算,即由指令組成的程序是可以修改的。(3)數(shù)據(jù)以二進制碼表示。(4)指令由操作碼和地址碼組成。(5)指令在存儲器中按執(zhí)行順序存放,由指令計數(shù)器(即程序計數(shù)器PC)指明要執(zhí)行的指令所在的單元地址,一般按順序遞增,也可按運算結(jié)果或外界條件而改變。(6)機器以運算器為中心,輸入/輸出設(shè)備與存儲器間的數(shù)據(jù)傳送都通過運算器。馮·諾依曼計算機開辟了“存儲程序自動控制”現(xiàn)代計算機的先河,目前的計算機基本是基于馮·諾依曼計算機的模型和原理研制的。根據(jù)電子計算機所采用的邏輯器件的發(fā)展,一般把電子計算機的發(fā)展分成四個階段,習慣上稱為四代,相鄰兩代計算機之間在時間上有一定的重疊。第一代:電子管計算機時代(從1946年第一臺計算機研制成功到20世紀50年代后期)。這一時期的計算機采用電子管作為基本器件。在這一時期,主要為軍事與國防尖端技術(shù)的需要而研制計算機,其研究成果逐步擴展到民用,并轉(zhuǎn)為工業(yè)產(chǎn)品,形成了計算機工業(yè)。第二代:晶體管計算機時代(從20世紀50年代中期到60年代后期)。這一時期計算機的主要器件逐步由電子管改為晶體管,因而縮小了體積,降低了功耗,提高了速度和可靠性,而且價格不斷下降。后來又采用了磁心存儲器,使速度得到進一步提高。不僅使計算機在軍事與尖端技術(shù)上的應(yīng)用范圍進一步擴大,而且在氣象、工程設(shè)計、數(shù)據(jù)處理以及其他科學研究等領(lǐng)域內(nèi)也應(yīng)用起來。在這一時期開始重視計算機產(chǎn)品的繼承性,形成了適應(yīng)一定應(yīng)用范圍的計算機“族”,這是系列化思想的萌芽,從而縮短了新機器的研制周期,降低了生產(chǎn)成本,實現(xiàn)了程序兼容,方便了新機器的使用。第三代:集成電路計算機時代(從20世紀60年代中期到70年代前期)。這一時期的計算機采用集成電路作為基本器件,因此功耗、體積、價格等進一步下降,而速度及可靠性相應(yīng)地提高,使計算機的應(yīng)用范圍進一步擴大。正是由于集成電路成本的迅速下降,產(chǎn)生了成本低而功能不是太強的小型計算機供應(yīng)市場,占領(lǐng)了許多數(shù)據(jù)處理的應(yīng)用領(lǐng)域。第四代:大規(guī)模集成電路計算機時代。20世紀70年代初,半導體存儲器問世,迅速取代了磁芯存儲器,并不斷向大容量、高速度發(fā)展。此后,存儲器芯片集成度大體上每三年翻兩番(1971年每片1Kb,到1984年達到每片256Kb,1992年16Mb動態(tài)隨機存儲器芯片上市),這就是著名的摩爾定律,從1971年內(nèi)含2300個晶體管的Intel4004芯片問世,到1999年包含了750萬個晶體管的PentiumⅡ處理器,都證實了摩爾定律的正確性。后來摩爾定律用來描述微處理器的工作速度,在一定成本下,大體上也是每18個月翻一番。專家預(yù)計,芯片性能呈指數(shù)增長將在今后幾年放緩,有關(guān)人士認為摩爾定律能再適用10年左右。自從1981年IBM公司推出了第一代16位微型計算機(IBM-PC)以來,微機的生產(chǎn)和應(yīng)用得到了迅速的發(fā)展。目前,以Pentium(奔騰)微處理器為標志的微型計算機已廣泛地應(yīng)用于生產(chǎn)、經(jīng)營、管理和辦公自動化等各個方面。1.1.2微型計算機的特點微型計算機與其他類型計算機相比具有如下特點:(1)功能強。微型計算機的設(shè)計參考了其他類型計算機的優(yōu)點,它的運算速度快、計算精度高,具有記憶功能和邏輯判斷能力,而且每種微處理器都配有一整套支持相應(yīng)微型計算機工作的軟件。硬件和軟件的配合相輔相成,使微型計算機的功能大大增強,適合各行各業(yè)不同的應(yīng)用。(2)可靠性高。由于在微處理器及其配套系列芯片上可做出幾千、幾萬甚至幾千萬個元件,這就減少了大量的焊點、連線、接插件等不可靠因素,使可靠性大大增加。據(jù)某些資料估計,芯片集成度增加100倍,系統(tǒng)的可靠性也可增加100倍。目前,微處理器及其系列芯片的平均無故障時間可達107~108小時。(3)價格低。微處理器及其配套系列芯片采用集成電路工藝,集成度高,適合工廠大批量生產(chǎn),因此,產(chǎn)品造價十分低廉。據(jù)報道認為,集成度增加100倍其價格也可降為同功能分立元件的百分之一。很顯然,低價格對于微型計算機的推廣和普及是極為有利的。(4)適應(yīng)性強。在微型計算機中,硬件擴展是很方便的,而且系統(tǒng)的軟件是很容易改變的。因此,在相同的配置情況下,只要對硬件和軟件稍作某些變動,就能適應(yīng)不同用戶的要求。(5)周期短,見效快。微處理器制造廠家除生產(chǎn)微處器芯片外,還生產(chǎn)各種配套的支持芯片,同時也提供許多有關(guān)的支持軟件,這就為構(gòu)成一個微型計算機應(yīng)用系統(tǒng)創(chuàng)造了十分有利的條件。從而可節(jié)省研制時間,縮短研制周期,使研制的系統(tǒng)很快地投入運行,取得明顯的經(jīng)濟效益。(6)體積小,重量輕,耗電省。微處理器及其配套支持芯片的尺寸均較小,最大也不過幾百平方毫米。另外,近幾年在微型計算機中還大量地采用了ASIC(大規(guī)模集成專用芯片)和GAL(通用可編程門陣列)器件,使得微型計算機的體積明顯縮小。(7)維護方便?,F(xiàn)在用微處器及其系列產(chǎn)品所構(gòu)成的微型計算機已逐漸趨于標準化、模塊化和系列化,從硬件結(jié)構(gòu)到軟件配置都作了較全面的考慮。一方面,微機一般都可用自檢診斷及測試發(fā)現(xiàn)系統(tǒng)故障;另一方面,發(fā)現(xiàn)故障以后,排除故障也比較容易。例如,迅速更換標準化模塊或芯片。1.1.3微型計算機的指標1.字長微機的字長是指微處理器內(nèi)部一次可以并行處理二進制代碼的位數(shù)。它與微處理器內(nèi)部寄存器以及CPU內(nèi)部數(shù)據(jù)總線寬度是一致的,字長越長,所表示的數(shù)據(jù)精度就越高。在完成同樣精度的運算時,字長較長的微處理器比字長較短的微處理器運算速度快。大多數(shù)微處理器內(nèi)部的數(shù)據(jù)總線與微處理器的外部數(shù)據(jù)引腳寬度是相同的,但也有少數(shù)例外,如Intel8088微處理器內(nèi)部數(shù)據(jù)總線為16位,而芯片外部數(shù)據(jù)引腳只有8位,Intel80386SX微處理器內(nèi)部為32位數(shù)據(jù)總線,而外部數(shù)據(jù)引腳為16位。對這類芯片仍然以它們的內(nèi)部數(shù)據(jù)總線寬度為字長,但把它們稱作“準××位”芯片。例如,8088被稱為“準16位”微處理器芯片,80386SX被稱作“準32位”微處理器芯片。
2.存儲容量存儲容量是衡量微機內(nèi)部存儲器能存儲二進制信息量大小的一個技術(shù)指標。通常把8位二進制代碼稱為一個字節(jié)(Byte),16位二進制代碼稱為一個字(Word),把32位二進制代碼稱為一個雙字(DWord)。存儲器容量一般以字節(jié)為最基本的計量單位。一個字節(jié)記為1B,1024個字節(jié)記為1KB,1024KB記為1MB,1024MB記為1GB,而1024GB記為1TB。
3.指令執(zhí)行時間指令執(zhí)行時間是指計算機執(zhí)行一條指令所需的平均時間,其長短反映了計算機執(zhí)行一條指令運行速度的快慢。它一方面決定于微處理器工作時鐘頻率,另一方面又取決于計算機指令系統(tǒng)的設(shè)計、CPU的體系結(jié)構(gòu)等。微處理器工作時鐘頻率指標可表示為多少兆赫茲,即MHz;微處理器指令執(zhí)行速度指標則表示為每秒運行多少百萬條指令(MIPS,MillionsofInstructionsPerSecond)。
4.系統(tǒng)總線系統(tǒng)總線是連接微機系統(tǒng)各功能部件的公共數(shù)據(jù)通道,其性能直接關(guān)系到微機系統(tǒng)的整體性能。系統(tǒng)總線的性能主要表現(xiàn)為它所支持的數(shù)據(jù)傳送位數(shù)和總線工作時鐘頻率。數(shù)據(jù)傳送位數(shù)越寬,總線工作時鐘頻率越高,則系統(tǒng)總線的信息吞吐率就越高,微機系統(tǒng)的性能就越強。目前,微機系統(tǒng)采用了多種系統(tǒng)總線標準,如ISA、EISA、VESA、PCI等。
5.外部設(shè)備配置在微機系統(tǒng)中,外部設(shè)備占據(jù)了重要的地位。計算機信息輸入、輸出、存儲都必須由外設(shè)來完成,微機系統(tǒng)一般都配置了顯示器、打印機、網(wǎng)卡等外設(shè)。微機系統(tǒng)所配置的外設(shè),其速度快慢、容量大小、分辨率高低等技術(shù)指標都影響著微機系統(tǒng)的整體性能。
6.系統(tǒng)軟件配置系統(tǒng)軟件也是計算機系統(tǒng)不可缺少的組成部分。微機硬件系統(tǒng)僅是一個裸機,它本身并不能運行,若要運行,必須有基本的系統(tǒng)軟件支持,如DOS、Windows等操作系統(tǒng)。系統(tǒng)軟件配置是否齊全,軟件功能的強弱,是否支持多任務(wù)、多用戶操作等都是微機硬件系統(tǒng)性能能否得到充分發(fā)揮的重要因素。1.1.4微型計算機的分類微型計算機的品種繁多,系列各異,最常見的有以下幾種分類方法。
1.按微處理器的位數(shù)分類按微處理器的位數(shù)分為4位機、8位機、16位機、32位機、64位機,即分別以4位、8位、16位、32位、64位處理器為核心組成的微型計算機。
2.按微型計算機的用途分類按微型計算機的用途分為通用機和專用機兩類。
3.按微型計算機的檔次分類按微型計算機的檔次可分為低檔機、中檔機和高檔機。計算機的核心部件是它的微處理器,也可以根據(jù)所使用的微處理器檔次將微型計算機分為8086機、286機、386機、486機、586(Pentium)機、PentiumⅡ機、PentiumⅢ機和Pentium4機等。
4.按微型計算機的組裝形式和系統(tǒng)規(guī)模分類按微型計算機的組裝形式和系統(tǒng)規(guī)??煞譃閱纹瑱C、單板機、個人計算機。單片機是將微型計算機的主要部件:微處理器、存儲器、輸入/輸出接口等集成在一片大規(guī)模集成電路芯片上形成的微型計算機,它具有完整的微型計算機功能。單片機具有體積小、可靠性高、成本低等特點,廣泛應(yīng)用于智能儀器、儀表、家用電器、工業(yè)控制等領(lǐng)域。單板機是將微處理器、存儲器、輸入/輸出接口、簡單外設(shè)等部件安裝在一塊印刷電路板上形成的微型計算機。單板機具有結(jié)構(gòu)緊湊、使用簡單、成本低等特點,常常應(yīng)用于工業(yè)控制和實驗教學等領(lǐng)域。個人計算機也就是人們常說的PC機,它是將一塊主機板(包括微處理器、內(nèi)存儲器、輸入/輸出接口等芯片)和若干接口卡、外部存儲器、電源等部件組裝在一個機箱內(nèi),并配置顯示器、鍵盤、鼠標等外部設(shè)備和系統(tǒng)軟件構(gòu)成的微型計算機系統(tǒng)。PC機具有功能強、配置靈活、軟件豐富、使用方便等特點,是最普及、應(yīng)用最廣泛的微型計算機。1.2微型計算機系統(tǒng)1.2.1微型計算機微型計算機是以微處理器芯片為核心,配以存儲器、I/O接口、輸入/輸出設(shè)備以及相應(yīng)的輔助電路而構(gòu)成的裸機,簡稱微機。從結(jié)構(gòu)上講,它以微處理器為中心,通過總線把I/O設(shè)備、存儲器等連接成一個整體。根據(jù)總線使用方法的不同,微型計算機可以有不同的組織方式。圖1.1給出了微型計算機組成框圖。圖1.1計算機硬件系統(tǒng)組成
1.運算器運算器是對數(shù)據(jù)信息進行加工處理的部件,它主要由算術(shù)邏輯運算單元(ALU)組成,在控制器的指揮下可以完成各種算術(shù)運算、邏輯運算和其他操作。
2.控制器控制器是統(tǒng)一指揮和有效控制計算機各部件協(xié)調(diào)工作的關(guān)鍵部件,是微型計算機的指揮控制神經(jīng)中樞。它從存儲器中逐條地取出指令、分析指令,并向各部件發(fā)出相應(yīng)的控制信號,使它們一步步地執(zhí)行指令所規(guī)定的操作。另一方面,它又接收運算器、存儲器以及輸入/輸出設(shè)備的反饋信息,以確定程序的執(zhí)行順序。
3.存儲器存儲器是存放程序和數(shù)據(jù)的部件,它是一個記憶裝置,是計算機能夠?qū)崿F(xiàn)存儲程序工作原理的基礎(chǔ),存儲器分為主存儲器和輔助存儲器。主存儲器又稱內(nèi)存,通常由半導體存儲器組成。它可由CPU直接訪問,存取速度較快,但容量不大,一般用來存放當前運行的程序和數(shù)據(jù)。輔助存儲器又稱為外存,通常由磁盤與光盤組成。它由CPU通過I/O接口進行訪問,存取速度較慢,但容量大,一般用來存放歷史數(shù)據(jù)與軟件。
4.輸入/輸出設(shè)備
輸入/輸出(I/O)設(shè)備又稱外設(shè),通過I/O接口與CPU相連,它是計算機與外部世界聯(lián)系的橋梁。(1)輸入設(shè)備用于把數(shù)字、字符、圖形、圖像和聲音等轉(zhuǎn)換成計算機能識別和接受的信息表示方式,如電信號、二進制編碼等,然后把它們放入存儲器中。典型的輸入設(shè)備有鍵盤、鼠標、掃描儀、光學字符識別設(shè)備(OCR)、模/數(shù)(A/D)轉(zhuǎn)換裝置以及其他聲像輸入設(shè)備等。(2)輸出設(shè)備把計算機處理信息的結(jié)果轉(zhuǎn)換成人們習慣接受的形式(如字符、曲線、圖像、表格和聲音等)送出,或變換成與其他設(shè)備相匹配的信號形式輸出。常見的輸出設(shè)備有顯示器、打印機、繪圖儀和數(shù)/模(D/A)轉(zhuǎn)換裝置等。計算機硬件的五大部件是通過總線連接起來的,所謂總線是一組公共信號線,它能分時地發(fā)送和接收各部件的信息。1.2.2微型計算機系統(tǒng)微型計算機的硬件系統(tǒng)稱為裸機,裸機不能做任何事情。裸機配上系統(tǒng)軟件,加上電源和合適的外部設(shè)備,就構(gòu)成了一個可以使用的微型計算機系統(tǒng)。這里的系統(tǒng)軟件是指用來實現(xiàn)對計算機資源進行管理,便于人們使用計算機而配置的軟件。由此可見,微型計算機系統(tǒng)由作為裸機的硬件系統(tǒng)和用來管理計算機資源的軟件系統(tǒng)兩大部分組成。其中,硬件是構(gòu)成計算機系統(tǒng)的物理實體或物理裝置。例如,微處理器、存儲器、主板、機箱、鍵盤、顯示器和打印機等。軟件是指為運行、維護、管理和應(yīng)用計算機所編制的所有程序的集合。軟件一般分為系統(tǒng)軟件和應(yīng)用軟件兩大類,如圖1.2所示。圖1.2軟件系統(tǒng)的分類系統(tǒng)軟件是指管理、控制和維護計算機的各種資源,以及擴大計算機功能和方便用戶使用計算機的各種程序集合。它是構(gòu)成計算機系統(tǒng)必備的軟件,通常又分為操作系統(tǒng)、語言處理程序、工具軟件和數(shù)據(jù)庫管理系統(tǒng)四類。應(yīng)用軟件是為了解決各種實際問題而設(shè)計的計算機程序,通常由計算機用戶或?qū)iT的軟件公司開發(fā)。現(xiàn)代計算機硬件和軟件之間的分界線并不十分明顯,軟件與硬件在邏輯上有著某種等價的意義。在一個計算機系統(tǒng)中,硬件與軟件之間的功能分配及相互配合是設(shè)計的關(guān)鍵性問題之一,通常需要綜合考慮價格、速度、存儲容量、靈活性、適應(yīng)性以及可靠性等諸多因素。1.3計算機中的數(shù)制及其轉(zhuǎn)換計算機內(nèi)部的信息分為兩大類:控制信息和數(shù)據(jù)信息??刂菩畔⑹且幌盗械目刂泼?,用于指揮計算機如何操作;數(shù)據(jù)信息是計算機操作的對象,一般又可分為數(shù)值數(shù)據(jù)和非數(shù)值數(shù)據(jù)。數(shù)值數(shù)據(jù)用于表示數(shù)量的大小,它有確定的數(shù)值;非數(shù)值數(shù)據(jù)沒有確定的數(shù)值,它主要包括字符、漢字、邏輯數(shù)據(jù)等等。對計算機而言,不論是控制命令還是數(shù)據(jù)信息,它們都要用“0”和“1”兩個基本符號(即基2碼)來編碼表示,這是由于以下三個原因:(1)基2碼在物理上最容易實現(xiàn)。例如,用“1”和“0”表示高、低兩個電位,或表示脈沖的有無,還可表示脈沖的正、負極性等等,可靠性都較高。(2)基2碼用來表示二進制數(shù),其編碼、加減運算規(guī)則簡單。(3)基2碼的兩個符號“1”和“0”正好與邏輯數(shù)據(jù)“真”與“假”相對應(yīng),為計算機實現(xiàn)邏輯運算帶來了方便。因此,不論是什么信息,在輸入計算機內(nèi)部時,都必須用基2碼編碼表示,以方便存儲、傳送和處理。1.3.1數(shù)與數(shù)制進位計數(shù)制是一種計數(shù)的方法。在日常生活中,人們使用各種進位計數(shù)制。例如,六十進制(1小時=60分,1分=60秒),十二進制(1英尺=12英寸,1年=12月)等。但最熟悉和最常用的是十進制計數(shù)。如前所述,在計算機中使用的是二進制計數(shù)。另外,為便于人們閱讀及書寫,常常還要用到八進制計數(shù)及十六進制計數(shù)來表示二進制計數(shù)。十進制數(shù)的特點是“逢十進一,借一當十”,需要用到的數(shù)字符號為10個,分別是0~9。二進制數(shù)的特點是“逢二進一,借一當二”,需要用到的數(shù)字符號為2個,分別是0、1。八進制數(shù)的特點是“逢八進一,借一當八”,需要用到的數(shù)字符號為8個,分別是0~7。十六進制數(shù)的特點是“逢十六進一,借一當十六”,需要用到的數(shù)字符號為16個,分別是0~9、A~F。任意一個十進制數(shù)可以用位權(quán)表示,位權(quán)就是某個固定位置上的計數(shù)單位。在十進制數(shù)中,個位的位權(quán)為100,十位的位權(quán)為101,百位的位權(quán)為102,千位的位權(quán)為103,而在小數(shù)點后第一位上的位權(quán)為10-1,小數(shù)點后第二位的位權(quán)為10-2等等。因此,如果有十進制數(shù)234.13,則百位上的2表示兩個100,十位上的3表示三個10,個位上的4表示四個1,小數(shù)點后第一位上的1表示一個0.1,小數(shù)點后第二位上的3表示三個0.01,用位權(quán)表示為(234.13)10=2×102+3×101+4×100+1×10-1+3×10-2同理,任意一個二進制數(shù)、八進制數(shù)和十六進制數(shù)也可用位權(quán)表示。例如:(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2(124.36)8=1×82+2×81+4×80+3×8-1+6×8-2(AC.B5)16=A×161+C×160+B×16-1+5×16-2
根據(jù)上述概念,可推廣出表示任意進制數(shù)的通式:其中為整數(shù)部分,為小數(shù)部分,r為基數(shù)。每一項的數(shù)字可用0~r-1數(shù)字中的一個數(shù)字來表示。1.3.2不同數(shù)制之間的轉(zhuǎn)換1.十進制數(shù)與二進制數(shù)之間的轉(zhuǎn)換1)十進制整數(shù)轉(zhuǎn)換成二進制整數(shù)
方法:除2取余法。具體做法:將十進制數(shù)除以2,得到一個商和一個余數(shù);再將商除以2,又得到一個商和一個余數(shù);繼續(xù)這一過程,直到商等于0為止。每次得到的余數(shù)(必定是0或1)就是對應(yīng)的二進制數(shù)的各位數(shù)字。注意:第一次得到的余數(shù)為二進制數(shù)的最低位,最后得到的余數(shù)為二進制數(shù)的最高位?!纠?-1】將十進制數(shù)97轉(zhuǎn)換成二進制數(shù)。其過程如下:最后結(jié)果為(97)10=(A6A5A4A3A2A1A0)2=(1100001)22972482242122623210余數(shù)為1,余數(shù)為0,余數(shù)為0,余數(shù)為0,余數(shù)為0,余數(shù)為1,余數(shù)為1,余數(shù)為0,即A0=1即A1=0即A2=0即A3=0即A4=0即A5=1即A6=1結(jié)束2)十進制小數(shù)轉(zhuǎn)換成二進制小數(shù)方法:乘2取整法。具體做法:用2乘以十進制小數(shù),得到整數(shù)和小數(shù)部分;再用2乘以小數(shù)部分,又得到一個整數(shù)和一個小數(shù)部分;繼續(xù)這一過程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是0或1)按先后順序從左到右排列,即得到所對應(yīng)的二進制小數(shù)。【例1-2】將十進制小數(shù)0.6875轉(zhuǎn)換成二進制小數(shù)。其過程如下:0.6875× ?21.3750 整數(shù)部分為1,即A-1=10.3750 余下的小數(shù)部分×20.7500 整數(shù)部分為0,即A-2=00.7500 余下的小數(shù)部分×?21.5000 整數(shù)部分為1,即A-3=10.5000 余下的小數(shù)部分×?21.0000 整數(shù)部分為1,即A-4=10.0000 余下的小數(shù)部分為0,結(jié)束最后結(jié)果為(0.6875)10=(0.A-1A-2A-3A-4)2=(0.1011)2
為了將一個既有整數(shù)又有小數(shù)部分的十進制數(shù)轉(zhuǎn)換成二進制數(shù),可以將其整數(shù)部分和小數(shù)部分分別進行轉(zhuǎn)換,然后再組合起來。例如:(97)10=(1100001)2(0.6875)10=(0.1011)2由此可得:(97.6875)10=(1100001.1011)23)二進制數(shù)轉(zhuǎn)換成十進制數(shù)方法:按位權(quán)展開后相加?!纠?-3】將二進制數(shù)111.11轉(zhuǎn)換成十進制數(shù)。其過程如下:(111.11)2=1×22+1×21+1×20+1×2-1+1×2-2 =4+2+1+0.5+0.25=(7.75)10
2.十進制與八進制之間的轉(zhuǎn)換1)十進制整數(shù)轉(zhuǎn)換成八進制整數(shù)方法:除8取余法。具體做法:將十進制數(shù)除以8,得到一個商和一個余數(shù);再將商除以8,又得到一個商和一個余數(shù);繼續(xù)這一過程,直到商等于0為止。每次得到的余數(shù)(必定是小于8的數(shù))就是對應(yīng)八進制數(shù)的各位數(shù)字。第一次得到的余數(shù)為八進制數(shù)的最低位,最后一次得到的余數(shù)為八進制數(shù)的最高位?!纠?-4】將十進制數(shù)97轉(zhuǎn)換成八進制數(shù)。其過程如下:最后結(jié)果為(97)10=(A2A1A0)8=(141)8余數(shù)為1,余數(shù)為4,余數(shù)為1,即A0=1即A1=4即A2=1結(jié)束89781281商為0余數(shù)為0,2)十進制小數(shù)轉(zhuǎn)換成八進制小數(shù)
方法:乘8取整法。具體做法:用8乘以十進制小數(shù),得到一個整數(shù)和一個小數(shù)部分;再用8乘以小數(shù)部分,又得到一個整數(shù)和一個小數(shù)部分;繼續(xù)這一過程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是小于8的數(shù))按先后順序從左到右排列,即得到所對應(yīng)的二進制小數(shù)?!纠?-5】將十進制小數(shù)0.6875轉(zhuǎn)換成八進制小數(shù)。其過程如下: 0.6875 ×8 5.5000 整數(shù)部分為5,即A-1=5 0.5000 余下的小數(shù)部分 ×8 4.0000 整數(shù)部分為4,即A-2=4 0.0000 余下的小數(shù)部分為0,結(jié)束最后結(jié)果為(0.6875)10=(0.A-1A-2)8=(0.54)8同理,一個八進制數(shù)可分解成整數(shù)和小數(shù)部分,分別轉(zhuǎn)換后合成即可。3)八進制數(shù)轉(zhuǎn)換成十進制數(shù)方法:按位權(quán)展開后相加【例1-6】將八進制數(shù)141.54轉(zhuǎn)換成十進制數(shù)。其過程如下:(141.54)8=1×82+4×81+1×80+5×8-1+4×8-2 =64+32+1+0.625+0.0625 =97.6875最后結(jié)果為(141.54)8=(97.6875)10
3.十進制與十六進制之間的轉(zhuǎn)換1)十進制整數(shù)轉(zhuǎn)換成十六進制整數(shù)
方法:除16取余法。具體做法:將十進制數(shù)除以16,得到一個商和一個余數(shù);再將商除以16,又得到一個商和一個余數(shù);繼續(xù)這一過程,直到商等于0為止。每次得到的余數(shù)(必定是小于F的數(shù))就是對應(yīng)十六進制數(shù)的各位數(shù)字。第一次得到的余數(shù)為十六進制數(shù)的最低位,最后一次得到的余數(shù)為十六進制數(shù)的最高位?!纠?-7】將十進制數(shù)97轉(zhuǎn)換成十六進制數(shù)。其過程如下:最后結(jié)果為(97)10=(A2A1A0)16=(61)16余數(shù)為1,余數(shù)為6,即A0=1即A1=6結(jié)束1697166商為0余數(shù)為0,2)十進制小數(shù)轉(zhuǎn)換成十六進制小數(shù)方法:乘16取整法。具體做法:用16乘以十進制小數(shù),得到一個整數(shù)和一個小數(shù)部分;再用16乘以小數(shù)部分,又得到一個整數(shù)和一個小數(shù)部分;繼續(xù)這一過程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是小于F的數(shù))按先后順序從左到右排列,即得到所對應(yīng)的十六進制小數(shù)?!纠?-8】將十進制小數(shù)0.6875轉(zhuǎn)換成十六進制小數(shù)。其過程如下:0.68751611.00000.0000整數(shù)部分為11,即A-1=B余下的小數(shù)部分為0,結(jié)束最后結(jié)果為(0.6875)10=(0.A-1)16=(0.B)163)十六進制數(shù)轉(zhuǎn)換成十進制數(shù)方法:按位權(quán)展開后相加?!纠?-9】將十六進制數(shù)61.B轉(zhuǎn)換成十進制數(shù)。其過程如下:(61.B)8 =6×161+1×160+B×16-1 =96+1+11×16-1 =97+0.6875 =97.6875最后結(jié)果為(61.B)16=(97.6875)10
4.二進制與八進制、十六進制數(shù)之間的轉(zhuǎn)換因為23=8,所以每三位二進制數(shù)對應(yīng)一位八進制數(shù);24=16,所以每四位二進制數(shù)對應(yīng)一位十六進制。表1-1列出了十進制、二進制、八進制、十六進制最基本數(shù)字的對應(yīng)關(guān)系,這些對應(yīng)關(guān)系在后面的二進制、八進制、十六進制相互轉(zhuǎn)換中要經(jīng)常用到。1)二進制數(shù)轉(zhuǎn)換成八進制數(shù)
方法:從小數(shù)點所在位置分別向左向右每三位一組進行劃分。若小數(shù)點左側(cè)的位數(shù)不是3的整數(shù)倍,在數(shù)的最左側(cè)補零;若小數(shù)點右側(cè)的位數(shù)不是3的整數(shù)倍,在數(shù)的最右側(cè)補零。然后參照表1-1,將每三位二進制數(shù)轉(zhuǎn)換成對應(yīng)的一位八進制數(shù),即為二進制數(shù)對應(yīng)的八進制數(shù)。表1-1十、二、八、十六進制數(shù)碼的對應(yīng)關(guān)系十進制二進制八進制十六進制00000001000111200102230011334010044501015560110667011177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F表1-1十、二、八、十六進制數(shù)碼的對應(yīng)關(guān)系【例1-10】直接將二進制數(shù)11110.11轉(zhuǎn)換成八進制數(shù)。其過程如下:011 110 . 1103 6 . 6所以(11110.11)2=(36.6)82)八進制數(shù)轉(zhuǎn)換二進制數(shù)方法:參照表1-1,將每一位八進制數(shù)分解成對應(yīng)的三位二進制數(shù),即為八進制數(shù)對應(yīng)的二進制數(shù)?!纠?-11】直接將八進制數(shù)35.6轉(zhuǎn)換成二進制數(shù)。其過程如下:3 5 . 6011 101 . 110所以(35.6)8=(11101.11)2
3)二進制數(shù)轉(zhuǎn)換成十六進制數(shù)方法:從小數(shù)點所在位置分別向左向右每四位一組進行劃分。若小數(shù)點左側(cè)的位數(shù)不是4的整數(shù)倍,在數(shù)的最左側(cè)補零;若小數(shù)點右側(cè)的位數(shù)不是4的整數(shù)倍,在數(shù)的最右側(cè)補零。然后參照表1-1,將每四位二進制數(shù)轉(zhuǎn)換成對應(yīng)的一位十六進制數(shù),即為二進制數(shù)對應(yīng)的十六進制數(shù)?!纠?-12】直接將二進制11110.11轉(zhuǎn)換成十六進制數(shù)。其過程如下:0001 1110 . 11001 E . C所以(11110.11)2=(1E.C)164)十六進制數(shù)轉(zhuǎn)換二進制數(shù)方法:參照表1-1,將每一位十六進制數(shù)轉(zhuǎn)換成對應(yīng)的四位二進制數(shù),即為十六進制數(shù)對應(yīng)的二進制數(shù)?!纠?-13】直接將十六進制數(shù)EF.C轉(zhuǎn)換成二進制數(shù)。其過程如下:
E F . C1110 1111 . 1100所以(EF.C)16=(11101111.11)2由以上方法可以看出,(25)10=(11001)2=(19)16=(31)8,(0.5)10=(0.1)2=(0.8)16=(0.4)8。在計算機里,通常用數(shù)字后面跟一個英文字母來表示該數(shù)的數(shù)制,十進制數(shù)用D(Decimal)、二進制數(shù)用B(Binary)、八進制數(shù)用O(Octal)、十六進制數(shù)用H(Hexadecimal)來表示。由于英文字母O容易和零誤會,所以也可以用Q來表示八進制數(shù)。另外,在計算機操作中一般默認使用十進制數(shù),所以十進制數(shù)可以不標進制。例如,25D=1100B=19H=31Q,0.5D=0.1B=0.8H=0.4Q。當然,也可以用這些字母的小寫形式來表示數(shù)制。例如:25d=1100b=19h=31q,0.5d=0.1b=0.8h=0.4q。本書約定采用大寫字母形式。八進制數(shù)和十六進制數(shù)主要用來簡化二進制數(shù)的書寫,因為具有23=8,24=16的關(guān)系,所以使用八進制數(shù)和十六進制數(shù)表示的二進制數(shù)較短,便于記憶。IBM-PC機中主要使用十六進制數(shù)表示二進制數(shù)和編碼,所以必須十分熟悉二進制數(shù)與十六進制數(shù)的對應(yīng)關(guān)系。1.4計算機中數(shù)與字符的編碼1.4.1數(shù)值數(shù)據(jù)的編碼及其運算1.二進制數(shù)的編碼及運算數(shù)據(jù)的正負號可以用一位二進制的“0”和“1”兩個狀態(tài)來表示,這樣,二進制數(shù)值數(shù)據(jù)在計算機中就能方便表示了。為了盡可能簡化對二進制數(shù)值數(shù)據(jù)實現(xiàn)算術(shù)運算所用到的規(guī)則,機器將二進制數(shù)值數(shù)據(jù)進行編碼表示,常用的編碼有原碼、反碼和補碼。由于補碼編碼有許多優(yōu)點,因此大多數(shù)微機數(shù)字與字符采用補碼進行編碼。為了討論方便,有必要引入兩個概念:機器數(shù)和機器數(shù)的真值(簡稱真值)。機器數(shù):帶符號的二進制數(shù)值數(shù)據(jù)在計算機內(nèi)部的編碼。真值:機器數(shù)所代表的實際值。一般機器數(shù)的最高有效位用來表示數(shù)的正負號,“0”表示正數(shù),“1”表示負數(shù)。1)二進制數(shù)原碼編碼方法原碼編碼的方法如下:設(shè)真值為X,機器字長為n位,則當X≥0時,[X]原的最高位填0,其余n-1位填X的各數(shù)值位的位值。例如,n=8時,[+0]原=00000000,[+1]原=00000001,[+127]原=01111111。當X≤0時,[X]原的最高位填1,其余n-1位填X的各數(shù)值位的位值。例如,n=8時,[-0]原=10000000,[-1]原=10000001,[-127]原=11111111。結(jié)論:二進制正、負數(shù)的原碼就是符號化的機器數(shù)真值本身。注意:在原碼的表示中,真值0的原碼可表示為兩種不同的形式,+0和-0。原碼表示法的優(yōu)點是簡單易于理解,與真值間的轉(zhuǎn)換較為方便。它的缺點是進行加減運算時較麻煩,既要考慮是做加法還是做減法運算,還要考慮數(shù)的符號和絕對值的大小。這不僅使運算器的設(shè)計較為復(fù)雜,而且降低了運算器的運算速度。若有二進制數(shù)X=Xn-1Xn-2…X1X0,則原碼表示法的定義為2n-1>X≥00≥X>-2n-12)二進制數(shù)反碼編碼方法反碼編碼的方法如下:設(shè)真值為X,機器字長為n位,則當X≥0時,[X]反的最高位填0,其余n-1位填X的各數(shù)值位的位值,即采用符號—絕對值表示。例如,n=8時,[+0]反=00000000,[+1]反=00000001,[+127]反=01111111。當X≤0時,[X]反=2n-1+X(MOD2n)。例如,n=8時,[-0]反=11111111,[-1]反=11111110,[-127]反=10000000。
結(jié)論:二進制正數(shù)的反碼就是其原碼。二進制負數(shù)的反碼就是機器數(shù)符號位保持不變,其余按位取反。注意:在反碼的表示中,真值0的反碼也可表示為兩種不同的形式,+0和-0。若二進制數(shù)X=Xn-1Xn-2…X1X0,則反碼表示法的定義為2n-1>X≥00≥X>-2n-13)二進制數(shù)補碼編碼方法補碼編碼的方法如下:設(shè)真值為X,機器字長為n位,則當X≥0時,[X]補的最高位填0,其余n-1位填X的各數(shù)值位的位值,即采用符號—絕對值表示。例如,n=8時,[+0]補=00000000,[+1]補=00000001,[+127]補=01111111。當X≤0時,[X]補=2n-|X|(MOD2n)。例如,n=8時,[-0]補=00000000,[-1]補=11111111,[-127]補=10000001。結(jié)論:二進制正數(shù)的補碼就是其原碼。二進制負數(shù)的補碼就是機器數(shù)符號位保持不變,其余位取反碼后末位加1。求負數(shù)的補碼有一種更簡便的方法:當X≤0時,[X]補的最高位填1,其余n-1位填X的各數(shù)值位按位取反(0變1,1變0)后在末位加1的數(shù)值。
注意:①在補碼表示法中,0只有一種表示,即000…000。②對于10000000這個補碼編碼,其真值被定義為-128。
【例1-14】機器字長n=8位,X=+48D,求[X]補。首先將+48D轉(zhuǎn)換為二進制數(shù):+110000B。
因為機器字長是8位,其中符號占了1位,所以數(shù)值只占7位。將+110000B寫成+0110000B,[+48]補=00110000B,寫成十六進制數(shù)為30H,即[+48]補=30H?!纠?-15】機器字長n=8位,X=-48D,求[X]補。首先將-48D轉(zhuǎn)換為二進制數(shù):-110000B。
因為機器字長是8位,其中符號占了1位,所以數(shù)值只占7位。將-110000B寫成-10110000B。再將數(shù)值位0110000B按位求反后為1001111B,末位加1后為1010000B。所以,[-48]補=11010000B,寫成十六進制數(shù)為0D0H,即[-48]補=0D0H?!纠?-16】機器字長n=16位,X=+48D,求[X]補+48D轉(zhuǎn)換為二進制數(shù):+110000B。
因為機器字長是16位,其中符號占了一位,所以數(shù)值占十五位。將+110000B寫成+000000000110000B,[+48]補=0000000000110000B,寫成十六進制數(shù)為0030H,即[+48]補=0030H。
【例1-17】機器字長n=16位,X=-48D,求[X]補。-48D轉(zhuǎn)換為二進制數(shù):-110000B。
因為機器字長是16位,其中符號占了1位,所以數(shù)值占15位。將-110000B寫成-000000000110000B。000000000110000B按位求反后為1111111111001111B,末位加1后為1111111111010000B。所以,[-48]補=1111111111010000B,寫成十六進制數(shù)為0FFD0H,即[-48]補=0FFD0H。注意:在匯編語言中,為了區(qū)別指令碼和數(shù)據(jù),規(guī)定以A~F開始的數(shù)據(jù)前面加零。由此可看出,補碼數(shù)要擴展時,正數(shù)是在符號的前面補0,負數(shù)是在符號的前面補1。也就是說,補碼數(shù)擴展實際上是符號擴展。已知補碼求真值的方法是:當機器數(shù)的最高位(符號位)為0時,表示真值是正數(shù),其值等于其余n-1位的值;當機器數(shù)的最高位(符號位)為1時,表示真值是負數(shù),其值等于其余n-1位按位取反后末位加1的值。例如:若[X]補=01111111,則X=(+1111111)2=(+127)10。
若[X]補=11111111,則X=(-0000001)2=(-1)10。
下面討論補碼表示數(shù)的范圍。一般來說,如果機器字長為n位,則補碼能表示的整數(shù)范圍是-2n-1≤N≤2n-1-1。
例如,當n=8時,-128≤N≤+127,其二進制補碼數(shù)范圍如表1-2所示。表1-28位二進制補碼數(shù)范圍補碼編碼(機器數(shù))十進制數(shù)(真值)01111111+12701111110+12600000010+200000001+100000000011111111-111111110-210000010-12610000001-12710000000-1284)二進制數(shù)補碼的運算補碼的運算規(guī)則是:[X+Y]補=[X]補+[Y]補[X-Y]補=[X]補+[-Y]補已知[Y]補,求[-Y]補的方法是將[Y]補各位按位取反(包括符號位在內(nèi))末位加1?,F(xiàn)舉例說明以上兩個公式的正確性。【例1-18】設(shè) X1=+0001100
X2=-0001100 Y1=+0000101Y2=-0000101則 [X1]補=00001100 [X2]補=11110100[Y1]補=00000101 [Y2]補=11111011①計算X1+Y1。+0001100X1 00001100 [X1]補+)+0000101Y1 +)00000101 [Y1]補+0010001X1+Y1 00010001 [X1]補+[Y1]補因為:[X1+Y1]補=[+0010001]補=00010001=[X1]補+[Y1]補所以:[X1+Y1]補=[X1]補+[Y1]補②計算X1-Y1。+0001100 X1 00001100 [X1]補-)+0000101 Y1
+)11111011 [-Y1]補
+0000111 X1-Y1100000111 [X1]補+[-Y1]補自然丟失因為:[X1-Y1]補=[+0000111]補=00000111=[X1]補+[-Y1]補所以:[X1-Y1]補=[X1]補+[-Y1]補③計算X2+Y2。-0001100 X2
11110100 [X2]補+)-0000101 Y2 +)11111011 [Y2]補 -0010001 X2+Y2 11101111 [X2]補+[Y2]補自然丟失因為:[X2+Y2]補=[-0010001]補=11101111=[X2]補+[Y2]補所以:[X2+Y2]補=[X2]補+[Y2]補④計算X2-Y2。-0001100 X2 11110100 [X2]補-)-0000101 Y2 +) 00000101 [-Y2]補
-0000111 X2-Y2 11111001 [X2]補+[-Y2]補因為:[X2-Y2]補=[-0000111]補=11111001=[X2]補+[-Y2]補所以:[X2-Y2]補=[X2]補+[-Y2]補由此可看出,計算機引入了補碼編碼后,帶來了以下幾個優(yōu)點:(1)減法轉(zhuǎn)化成了加法,這樣大大簡化了運算器硬件電路的設(shè)計,加減法可用同一硬件電路進行處理。(2)運算時,符號位與數(shù)值位同等對待,都按二進制數(shù)參加運算,符號位產(chǎn)生的進位丟掉不管,其結(jié)果是正確的。這大大簡化了運算規(guī)則。運用以上兩個公式時,要注意以下兩點:(1)公式成立有個前提條件,就是運算結(jié)果不能超出機器數(shù)所能表示的范圍,否則運算結(jié)果不正確,按“溢出”處理。例如,設(shè)機器字長為8位,則-128≤N≤+127,計算(+64)+(+65)。+64 01000000+)+65 +) 01000001+129 10000001—→-127顯然這個結(jié)果是錯誤的。究其原因是:(+64)+(+65)=+129>+127,超出了字長為8位所能表示的最大值,產(chǎn)生了“溢出”,所以結(jié)果值出錯。再如,計算(-125)+(-10)。-125 10000011+)-10 +) 11110110-135 101111001—→+121顯然,計算結(jié)果也是錯誤的。其原因是:(-125)+(-10)=-135<-128,超出了字長為8位所能表示的最小值,產(chǎn)生了“溢出”,所以結(jié)果出錯。(2)采用補碼運算后,結(jié)果也是補碼,欲得運算結(jié)果的真值,還需進行轉(zhuǎn)換。
2.無符號整數(shù)的編碼及運算規(guī)則在某些情況下,計算機要處理的數(shù)據(jù)全是正數(shù),此時機器數(shù)再保留符號位就沒有意義了。這時,將機器數(shù)最高有效位也作為數(shù)值位處理,也就是說,假設(shè)機器字長為n位,則有符號整數(shù)的編碼可表示為符號位數(shù)值位1位n-1位無符號整數(shù)的編碼可表示為數(shù)值位n位無符號整數(shù)的表示范圍是:0≤N≤2n-1。
例如,當n=8位時,表示范圍是:0≤N≤255;當n=16位時,表示范圍是:0≤N≤65535。
計算機中最常見的無符號整數(shù)是地址,另外,雙字長數(shù)據(jù)的低位字也是無符號整數(shù)。要注意的是,計算機本身不論是對有符號數(shù)還是無符號數(shù),總是按照補碼的運算規(guī)則做運算。例如,機器做這樣一個運算:10001010+) 00000111 10010001可以把它看作是兩個無符號整數(shù)相加:也可以把它看作是兩個有符號整數(shù)相加:138+) 70145-118+)7-111也就是說,不論把二進制數(shù)解釋成有符號數(shù)還是無符號數(shù),其結(jié)果都是正確的。因此,機器采用補碼編碼以后,不必針對無符號數(shù)和有符號數(shù)設(shè)計兩套不同的電路,無符號數(shù)和有符號數(shù)的運算是兼容的。這也是采用補碼后帶來的一大優(yōu)點。
3.十進制數(shù)的編碼及運算人們在日常生活中習慣使用十進制數(shù),而在計算機內(nèi),采用二進制表示和處理數(shù)據(jù)更方便。因此,計算機在輸入和輸出數(shù)據(jù)時,要進行十→二和二→十的進制數(shù)轉(zhuǎn)換。但是,在某些特定的應(yīng)用領(lǐng)域中(如商業(yè)統(tǒng)計),數(shù)據(jù)的運算很簡單,但數(shù)據(jù)的輸入和輸出量很大,這樣,進制轉(zhuǎn)換所占的時間比例就會很大。從提高計算機的運行效率考慮,可以采用在計算機內(nèi)部直接用十進制表示和處理數(shù)據(jù)的方法。以下介紹在計算機內(nèi)部的十進制數(shù)的編碼方法及運算方法。十進制數(shù)的每一個數(shù)位的基為10,但到了計算機內(nèi)部,必須用基2碼對每個十進制數(shù)位進行編碼,所需要的最少的基碼的位數(shù)為lb10(即log210),取整數(shù)為4。4位基2碼有16種不同的組合,怎樣從中選擇出10個組合來表示十進制數(shù)位的0~9,有非常多的方案,最常見的是8421碼。8421碼是指4個基2碼的位權(quán)從高到低分別為8、4、2、1,選擇的是0000,0001,0010,…,1001這10種組合,用來表示0~9這10個數(shù)位,如表1-3所示。表1-3BCD碼表這種編碼的特點是:這4個基2碼之間滿足二進制規(guī)則,而十進制數(shù)位之間是十進制計數(shù)規(guī)則。因此,這種編碼實質(zhì)上是二進制編碼的十進制數(shù)(BinaryCodedDecimal),因此,簡稱BCD碼或二—十進制碼。十進制數(shù)碼01234567898421碼0000000100100011010001010110011110001001【例1-19】將十進制數(shù)67.9轉(zhuǎn)換成BCD碼。其過程如下:6 7 . 90110 0111 . 1001所以(67.9)10=(01100111.0111)BCD【例1-20】將BCD碼10010110.0110轉(zhuǎn)換成十進制數(shù),其過程如下:10010110 . 01109 6 . 6所以(10010110.0110)BCD=(96.6)10
BCD碼的運算規(guī)則:BCD碼是十進制數(shù),而運算器對數(shù)據(jù)做加減運算時,都是按二進制運算規(guī)則進行處理的。這樣,當將BCD碼傳送給運算器進行運算時,其結(jié)果需要修正。修正的規(guī)則是:當兩個BCD碼相加,如果和等于或小于1001(即9H),不需要修正;如果相加之和在1010到1111(即0AH~0FH)之間,則需加6H進行修正;如果相加時本位產(chǎn)生了進位,也需加6H進行修正。這樣做的原因是,機器按二進制相加,所以4位二進制數(shù)相加時,是按“逢十六進一”的原則進行運算的,而實質(zhì)上是2個十進制數(shù)相加,應(yīng)該按“逢十進一”的原則相加,16與10相差6,所以當和超過9或有進位時,都要加6進行修正。下面舉例說明。【例1-21】計算1+8的值如果將1和8送給機器進行加法運算,其運算過程如下:0001+)10001001結(jié)果是1001,即十進制數(shù)9,1+8=9正確?!纠?-22】需要修正BCD碼運算值的舉例。①計算5+7的值。0101+)01111100結(jié)果大于9+)0110加6修正10010結(jié)果是0010,即十進制數(shù)2,還產(chǎn)生了進位。5+7=12,結(jié)論正確。②計算9+9的值。1001+)100110010+)011011000結(jié)果是1000,即十進制的8,還產(chǎn)生進位,故加6修正。9+9=18,結(jié)論正確。若做減法運算,其修正規(guī)則為:當兩個BCD碼相減,如果差等于或小于1001,不需要修正;如果相減時本位產(chǎn)生了借位,則應(yīng)減6H加以修正。原因是:如果有借位,機器將這個借位當十六看待,而實際上應(yīng)該當十看待,因此,應(yīng)該將差值再減6H才是BCD碼的正確結(jié)果值。下面舉兩個例子進行說明。【例1-23】需要修正BCD碼運算值的舉例。①計算9-7的值。1001-)01110010結(jié)果值是0010,即十進制數(shù)2。9-7=2,結(jié)論正確。②計算7-9的值?!l(fā)生借位10111-)10011110-)0110減6修正1000結(jié)果值是1000,即十進制數(shù)8,有借位。7-9=8,結(jié)論正確。(8是-2以10為模的補碼,在機器中,負數(shù)都以補碼形式表示)在計算機中BCD碼有兩種格式:壓縮BCD碼和非壓縮BCD碼:(1)非壓縮BCD碼:1字節(jié)(8位二進制)中僅表示一位BCD數(shù),例如:(00000110)BCD=6。(2)壓縮BCD碼:1字節(jié)中僅表示兩位BCD數(shù),例如:(01100110)BCD=66。
另外,BCD碼除了采用上述方法調(diào)整以外,也可以在交付計算機運算之前,先將BCD碼轉(zhuǎn)換為二進制數(shù),然后交付計算機運算,運算以后再將二進制結(jié)果轉(zhuǎn)換為BCD碼。1.4.2非數(shù)值數(shù)據(jù)的二進制編碼現(xiàn)代計算機不僅要處理數(shù)值數(shù)據(jù),而且還要處理大量的非數(shù)值數(shù)據(jù),像英文字母、標點符號、專用符號、漢字等等。前面已說過,不論什么數(shù)據(jù),都必須用基2碼編碼后才能存儲、傳送及處理,非數(shù)值數(shù)據(jù)也不例外。下面分別討論常見的非數(shù)值數(shù)據(jù)的二進制編碼方法。
1.字符編碼使用最多、最普遍的是ASCII字符編碼,即美國標準信息交換代碼(AmericanStandardCodeforInformationInterchange),具體見表1-4。表1-4ASCII字符編碼B6B5B4
B3B2B1B0000(0)001(1)010(2)011(3)100(4)101(5)110(6)111(7)0000(0)NULDLESP0@P`p0001(1)SOHDC1!1AQaq0010(2)STXDC2″2BRbr0011(3)ETXDC3#3CScs0100(4)EOTDC4$4DTdt0101(5)ENQNAK%5EUeu0110(6)ACKSYN&6FVfv0111(7)BELETB?7GWgw1000(8)BSCAN(8HXhx1001(9)HTEM)9IYiy1010(A)LFSUB*:JZjz1011(B)VTESC+;K[k{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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧波大學科學技術(shù)學院《康復(fù)溝通與交流2》2023-2024學年第一學期期末試卷
- 克拉瑪依職業(yè)技術(shù)學院《深度學習實踐應(yīng)用》2023-2024學年第二學期期末試卷
- 桂林市龍勝各族自治縣2024-2025學年小升初數(shù)學重難點模擬卷含解析
- 浙江省溫州樹人中學2025年高三教學質(zhì)量檢測試題(一模)歷史試題含解析
- 2025年吉林省長春市田家炳實驗中學普通高中高三教學質(zhì)量測試試題英語試題試卷含解析
- 貴州省畢節(jié)市實驗高級中學2025年高三第二次適應(yīng)性考試英語試題試卷含解析
- 畢業(yè)設(shè)計(論文)-螺桿壓縮機設(shè)計及仿真
- 醫(yī)療法律法規(guī)知識培訓
- 附睪炎術(shù)前術(shù)后護理
- 酒后違紀違法警示教育
- 房屋市政工程生產(chǎn)安全重大事故隱患判定標準(2024版)宣傳畫冊
- 2024年云南省中考物理真題含解析
- 《員工質(zhì)量意識培訓》課件
- 再生醫(yī)學服務(wù)行業(yè)現(xiàn)狀分析及未來三至五年行業(yè)發(fā)展報告
- 【初中道法】認識生命說課課件-2024-2025學年統(tǒng)編版道德與法治七年級上冊
- GB/T 44823-2024綠色礦山評價通則
- 2024年官方獸醫(yī)牧運通考試題庫(含答案)
- GB/T 44679-2024叉車禁用與報廢技術(shù)規(guī)范
- 《民航概論》課件-3.飛行環(huán)境與操控
- 地球-宇宙的奇跡 (教學設(shè)計)五年級下冊科學教科版
評論
0/150
提交評論