版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章計(jì)算機(jī)系統(tǒng)概論
1.1計(jì)算機(jī)的發(fā)展歷程1.1.1計(jì)算機(jī)的發(fā)展簡(jiǎn)史由于機(jī)械式計(jì)算機(jī)早已退出歷史舞臺(tái),而電子模擬計(jì)算機(jī)目前也極少應(yīng)用,所以,今天人們所稱(chēng)的“計(jì)算機(jī)”在無(wú)特別指出的情況下就是指“電子數(shù)字計(jì)算機(jī)”。1.計(jì)算機(jī)的發(fā)展歷程18世紀(jì)第一次工業(yè)革命開(kāi)始,各種類(lèi)型的機(jī)械式的計(jì)算工具便陸續(xù)出現(xiàn),開(kāi)始有了機(jī)械式計(jì)算機(jī)。1812年,英國(guó)數(shù)學(xué)家、發(fā)明家巴貝奇(CharlesBabbage)首先提出了整個(gè)計(jì)算過(guò)程自動(dòng)化的概念,1822年用機(jī)械方式設(shè)計(jì)出了差分機(jī),提高了乘法運(yùn)算速度。巴貝奇在用機(jī)械方式設(shè)計(jì)計(jì)算機(jī)的過(guò)程中提出了通用自動(dòng)計(jì)算機(jī)必須具有“輸入、輸出、處理、存儲(chǔ)、控制”五大功能等設(shè)計(jì)思想,奠定了今天電子計(jì)算機(jī)的基礎(chǔ)。
因此,有人稱(chēng)巴貝奇為現(xiàn)代計(jì)算機(jī)之父。英國(guó)數(shù)學(xué)家、發(fā)明家巴貝奇(CharlesBabbage)19世紀(jì)末人類(lèi)開(kāi)始使用電做動(dòng)力,1904年英國(guó)物理學(xué)家弗萊明發(fā)明了世界上第一只電子二極管,1906年美國(guó)發(fā)明家德福雷斯特發(fā)明了世界上第一支電子三極管,標(biāo)志著世界由此進(jìn)入電子時(shí)代?,F(xiàn)代計(jì)算機(jī)理論上真正的奠基人是英國(guó)數(shù)學(xué)家艾蘭·圖靈(AlanTuring)。1936年,24歲的圖靈在倫敦權(quán)威的數(shù)學(xué)雜志上發(fā)表了一篇?jiǎng)潟r(shí)代的重要論文《可計(jì)算數(shù)字及其在判斷性問(wèn)題中的應(yīng)用》。在這篇論文中,他指出設(shè)計(jì)出一臺(tái)通用計(jì)算機(jī)理論上是可能的,他還提出了著名的“圖靈機(jī)”模型、和“圖靈測(cè)試”。為紀(jì)念圖靈對(duì)計(jì)算機(jī)科學(xué)的貢獻(xiàn),國(guó)際計(jì)算機(jī)學(xué)會(huì)ACM(AssociationforComputingMachinery,縮寫(xiě)ACM)在1966年創(chuàng)立了“圖靈獎(jiǎng)”,每年頒發(fā)給在計(jì)算機(jī)科學(xué)技術(shù)領(lǐng)域做出杰出貢獻(xiàn)的人士,“圖靈獎(jiǎng)”號(hào)稱(chēng)計(jì)算機(jī)業(yè)界和學(xué)術(shù)界的諾貝爾獎(jiǎng)。英國(guó)數(shù)學(xué)家艾蘭·圖靈(AlanTuring)另外一個(gè)對(duì)現(xiàn)代電子計(jì)算機(jī)發(fā)展作出巨大貢獻(xiàn)的人物是現(xiàn)代信息論的奠基人美國(guó)數(shù)學(xué)家克勞德·艾爾伍德·香農(nóng)(ClaudeElwoodShannon)。1938年22歲的香農(nóng)(1916年-2001年)發(fā)表了他著名的碩士論文《繼電器和開(kāi)關(guān)電路的符號(hào)分析》,把布爾代數(shù)的“真”與“假”和電路系統(tǒng)的“開(kāi)”與“關(guān)”對(duì)應(yīng)起來(lái),并用“1”和“0”表示。香農(nóng)首次用布爾代數(shù)進(jìn)行開(kāi)關(guān)電路分析,并證明布爾代數(shù)的邏輯運(yùn)算可以通過(guò)繼電器電路來(lái)實(shí)現(xiàn),明確地給出了實(shí)現(xiàn)加、減、乘、除等運(yùn)算的電子電路的設(shè)計(jì)方法。香農(nóng)的理論還為計(jì)算機(jī)具有邏輯功能奠定了基礎(chǔ),從而使電子計(jì)算機(jī)既能用于數(shù)值計(jì)算,又具有各種非數(shù)值應(yīng)用功能,使得以后的計(jì)算機(jī)幾乎在任何領(lǐng)域中都得到了廣泛的應(yīng)用。美國(guó)數(shù)學(xué)家克勞德·艾爾伍德·香農(nóng)(ClaudeElwoodShannon)正是在這些背景下,1945年底,世界上第一臺(tái)通用電子數(shù)字計(jì)算機(jī)ENIAC(ElectronicNumericalIntegratorandComputer,縮寫(xiě)ENIAC)在美國(guó)研制成功,并于1946年2月公諸于世。ENIAC堪稱(chēng)人類(lèi)偉大的發(fā)明之一,從此開(kāi)創(chuàng)了人類(lèi)社會(huì)的信息時(shí)代。美籍匈牙利數(shù)學(xué)家馮·諾依曼(VonNeumann)(1903年-1957年)。他和他的同事們于1949年5月在ENIAC基礎(chǔ)上研制了另外一臺(tái)電子計(jì)算機(jī)EDVAC(ElectronicDiscreteVariableAutomaticComputer,縮寫(xiě)EDVAC)。在電子數(shù)字計(jì)算機(jī)發(fā)展史上ENIAC被稱(chēng)為“始祖”,但ENIAC采用的是十進(jìn)制,而馮·諾依曼的EDVAC機(jī)在設(shè)計(jì)中采用了被后人廣泛采納的“存儲(chǔ)程序”和二進(jìn)制等先進(jìn)思想,對(duì)后來(lái)的計(jì)算機(jī)在體系結(jié)構(gòu)和工作原理上奠定了基礎(chǔ)。現(xiàn)代電子計(jì)算機(jī)的組成原理均是依據(jù)美籍匈牙利數(shù)學(xué)家馮·諾依曼等發(fā)表的題為《關(guān)于電子計(jì)算裝置邏輯結(jié)構(gòu)初探》報(bào)告中所闡述的思想構(gòu)建的。因此,我們把今天的電子計(jì)算機(jī)稱(chēng)為“馮·諾依曼”機(jī)。美籍匈牙利數(shù)學(xué)家馮·諾依曼(VonNeumann)2.電子計(jì)算機(jī)的發(fā)展階段電子計(jì)算機(jī)的發(fā)展大體經(jīng)歷了四代,這四代的劃分是以組成電子計(jì)算機(jī)的核心電子元器件的發(fā)展為標(biāo)志的。第一代電子計(jì)算機(jī)稱(chēng)為電子管計(jì)算機(jī)(1946-1958年):這種計(jì)算機(jī)的主要邏輯元件采用電子管。電子管體積大、功耗高、反應(yīng)速度慢、壽命短。第二代電子計(jì)算機(jī)稱(chēng)為晶體管計(jì)算機(jī)(1959-1964年):其主要邏輯元件采用的是晶體管。這種新型的電子器件體積只有電子管的幾十分之一,能量消耗小,晶體管壽命長(zhǎng)、反應(yīng)速度快、機(jī)械強(qiáng)度高。第三代電子計(jì)算機(jī)稱(chēng)為中小規(guī)模集成電路計(jì)算機(jī)(1965-1975年):隨著半導(dǎo)體技術(shù)的發(fā)展,到了1964年,一種新的、性能更好的電子器件集成電路出現(xiàn)了,它把許多個(gè)晶體管采用特殊的制作工藝集成到一塊面積只有幾平方毫米的半導(dǎo)體芯片上,最初是集成幾個(gè)到幾十個(gè),再到成千上萬(wàn)個(gè)晶體管,這種電子元器件稱(chēng)為中、小規(guī)模集成電路。用這種中、小規(guī)模集成電路為核心電子元器件制造的計(jì)算機(jī)就是第三代計(jì)算機(jī)。第四代電子計(jì)算機(jī)稱(chēng)為大規(guī)模和超大規(guī)模集成電路計(jì)算機(jī)(1976-現(xiàn)在):第四代計(jì)算機(jī)以采用大規(guī)模和超大規(guī)模集成電路為標(biāo)志。
大規(guī)模和超大規(guī)模集成電路芯片上的晶體管數(shù)目達(dá)到了幾百萬(wàn)、幾千萬(wàn)乃至幾十億只,集成電路技術(shù)的發(fā)展使計(jì)算機(jī)向更高速化、體積更小化發(fā)展。3.電子數(shù)字計(jì)算機(jī)的分類(lèi)關(guān)于電子數(shù)字計(jì)算機(jī)的分類(lèi),有很多種分類(lèi)方法。
從設(shè)計(jì)原理上把電子計(jì)算機(jī)分為:數(shù)字電子計(jì)算機(jī)和模擬電子計(jì)算機(jī);從使用領(lǐng)域把電子計(jì)算機(jī)分為:通用計(jì)算機(jī)和專(zhuān)用計(jì)算機(jī);按照運(yùn)算規(guī)模,我們把電子計(jì)算機(jī)分為巨型機(jī)(超級(jí)計(jì)算機(jī))、微型計(jì)算機(jī)(個(gè)人計(jì)算機(jī))、嵌入式計(jì)算機(jī)(單片機(jī)等)。
(1)巨型機(jī)巨型機(jī)(Supercomputer)又稱(chēng)為超級(jí)計(jì)算機(jī),它以極高的計(jì)算能力為主要發(fā)展目標(biāo),是一個(gè)國(guó)家科技水平、經(jīng)濟(jì)實(shí)力和軍事能力的象征。超級(jí)計(jì)算機(jī)的基本結(jié)構(gòu)是將許多微處理器以并行架構(gòu)的方式組合在一起,目前超級(jí)計(jì)算機(jī)的計(jì)算速度已達(dá)到峰值每秒億億次級(jí)浮點(diǎn)運(yùn)算。國(guó)家超級(jí)計(jì)算無(wú)錫中心的“神威·太湖之光”超級(jí)計(jì)算機(jī)安裝了40960個(gè)中國(guó)自主研發(fā)的“申威26010”眾核處理器,該眾核處理器采用64位自主申威指令系統(tǒng),峰值性能為12.5億億次/秒,持續(xù)性能為9.3億億次/秒。(2)微型計(jì)算機(jī)。微型計(jì)算機(jī)又稱(chēng)個(gè)人計(jì)算機(jī)(PersonalComputer,縮寫(xiě)PC),通常簡(jiǎn)稱(chēng)為微機(jī)(PC機(jī)),俗稱(chēng)電腦。指在大小、性能以及價(jià)位等多個(gè)方面適合于個(gè)人使用,并由最終用戶(hù)直接操控的計(jì)算機(jī)的統(tǒng)稱(chēng)。
臺(tái)式機(jī)、筆記本電腦、平板電腦等均屬于個(gè)人計(jì)算機(jī)的范疇。(3)嵌入式計(jì)算機(jī)系統(tǒng)將中央處理器、存儲(chǔ)器和輸入輸出接口集成在一塊芯片上的微型計(jì)算機(jī),簡(jiǎn)稱(chēng)單片機(jī)(SingleChipComputer)或者單片系統(tǒng)(SoC,SystemonChip)。
由于單片機(jī)主要應(yīng)用于控制系統(tǒng),故通常又稱(chēng)為微控制器MCU(MicroControlUnit)或嵌入式計(jì)算機(jī)(EmbeddedComputer)。1.1.2計(jì)算機(jī)的應(yīng)用按照電子計(jì)算機(jī)的應(yīng)用特點(diǎn),傳統(tǒng)的分類(lèi)方法大體可以概括為科學(xué)計(jì)算、數(shù)據(jù)處理、過(guò)程控制、輔助設(shè)計(jì)和人工智能等幾大類(lèi)。1.科學(xué)計(jì)算計(jì)算機(jī)最初是作為計(jì)算工具而面世的。因此,科學(xué)計(jì)算是計(jì)算機(jī)最早進(jìn)入的一個(gè)應(yīng)用領(lǐng)域,其特點(diǎn)是計(jì)算量大和數(shù)值變化范圍大。許多計(jì)算領(lǐng)域的問(wèn)題,如計(jì)算物理、計(jì)算力學(xué)、計(jì)算化學(xué)等均可以歸結(jié)為數(shù)值計(jì)算問(wèn)題。這類(lèi)計(jì)算往往涉及到較復(fù)雜的數(shù)學(xué)公式,如求解上千階的微分方程組、幾百個(gè)方程的線(xiàn)性方程組、大型的矩陣運(yùn)算等等。2.?dāng)?shù)據(jù)處理所謂數(shù)據(jù)處理也叫信息加工,是指利用計(jì)算機(jī)對(duì)大量的原始數(shù)據(jù)進(jìn)行采集、存儲(chǔ)、整理、計(jì)算等綜合處理,加工成人們所需要的數(shù)據(jù)形式。3.過(guò)程控制所謂過(guò)程控制,即對(duì)某一物理過(guò)程或工作對(duì)象,使用計(jì)算機(jī)進(jìn)行控制,使其處于最佳工作狀態(tài)。通過(guò)各種傳感器獲得的各種物理信號(hào)經(jīng)轉(zhuǎn)換為可測(cè)可控的數(shù)據(jù)信號(hào)后,再經(jīng)計(jì)算機(jī)運(yùn)算,根據(jù)偏差,驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)來(lái)調(diào)整,便可達(dá)到控制的目的。4.辦公自動(dòng)化辦公自動(dòng)化(OA-OfficeAutomation)是指使用現(xiàn)代化工具與手段,最大限度地幫助辦公室人員處理辦公業(yè)務(wù)。5.輔助系統(tǒng)計(jì)算機(jī)輔助設(shè)計(jì)(CAD-ComputerAidedDesign)是指用計(jì)算機(jī)來(lái)幫助設(shè)計(jì)人員完成各種各樣的設(shè)計(jì)工作。它是加快產(chǎn)品設(shè)計(jì)周期、提高產(chǎn)品設(shè)計(jì)質(zhì)量的重要手段。比如:計(jì)算機(jī)輔助制造(CAM-ComputerAidedManufacture)、計(jì)算機(jī)輔助教學(xué)(CAI-ComputerAidedInstruction)等6.仿真所謂計(jì)算機(jī)仿真(SIM-Simulation),也叫計(jì)算機(jī)模擬,是指利用計(jì)算機(jī)仿造真實(shí)對(duì)象的某些特征與行為的技術(shù)。通過(guò)這種仿造或模擬,可以更加有效地研究真實(shí)對(duì)象。現(xiàn)在工程應(yīng)用中出現(xiàn)了大量的計(jì)算機(jī)仿真軟件,幫助工程師進(jìn)行項(xiàng)目和產(chǎn)品設(shè)計(jì)。7.人工智能人工智能是研究解釋和模擬人類(lèi)智能、智能行為及其規(guī)律的專(zhuān)門(mén)學(xué)科,是當(dāng)今電子計(jì)算機(jī)應(yīng)用研究最前沿的學(xué)科。近年來(lái)在模式識(shí)別、語(yǔ)音識(shí)別、專(zhuān)家系統(tǒng)和機(jī)器人制作方面都取得了很大的成就。
今天的社會(huì)計(jì)算機(jī)應(yīng)用無(wú)處不在,人們的日常生活都要使用計(jì)算機(jī),聊天、通信、購(gòu)物、電子支付等都需要使用計(jì)算機(jī)(手機(jī)),我們的生活已經(jīng)離不開(kāi)計(jì)算機(jī)。
1.2計(jì)算機(jī)系統(tǒng)的基本結(jié)構(gòu)1.2.1計(jì)算機(jī)系統(tǒng)1.計(jì)算機(jī)的組成
一個(gè)完整的電子計(jì)算機(jī)系統(tǒng)是由兩個(gè)部分組成的:硬件(Hardware)部分和軟件(Software)部分。(1)硬件所謂“硬件”是指計(jì)算機(jī)的實(shí)體部份,它由看得見(jiàn)摸得著的各種電子元器件、各類(lèi)光、電、機(jī)設(shè)備的實(shí)物組成,是構(gòu)成計(jì)算機(jī)系統(tǒng)的各種物理設(shè)備的總稱(chēng)。(2)軟件所謂“軟件”是應(yīng)用、管理和維護(hù)計(jì)算機(jī)的各類(lèi)程序和文檔的總稱(chēng)。計(jì)算機(jī)的軟件通常又分為兩大類(lèi):系統(tǒng)軟件和應(yīng)用軟件。①系統(tǒng)軟件又稱(chēng)為系統(tǒng)程序,主要用來(lái)管理整個(gè)計(jì)算機(jī)系統(tǒng),使系統(tǒng)資源得到合理調(diào)度,確保高效運(yùn)行。
系統(tǒng)軟件通常包括:操作系統(tǒng)、標(biāo)準(zhǔn)程序庫(kù)、語(yǔ)言處理程序、服務(wù)性程序。②應(yīng)用軟件又稱(chēng)為應(yīng)用程序,是針對(duì)某個(gè)應(yīng)用領(lǐng)域的具體問(wèn)題而開(kāi)發(fā)和研制的程序,這類(lèi)程序成千上萬(wàn)。正是由于應(yīng)用軟件的特點(diǎn),才使得計(jì)算機(jī)的應(yīng)用日益滲透到社會(huì)的各行各業(yè)。
常見(jiàn)的應(yīng)用軟件歸為以下幾類(lèi):公處理軟件;信息管理軟件;圖像處理軟件;多媒體處理軟件;網(wǎng)絡(luò)應(yīng)用軟件等2.計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)一個(gè)完整的計(jì)算機(jī)系統(tǒng)宏觀地看,可以分成兩個(gè)層次:軟件和硬件。在這個(gè)層次結(jié)構(gòu)中:下層是硬件,上層是軟件。
如果把上層的軟件部分再細(xì)分,又可以分為兩層:應(yīng)用軟件和系統(tǒng)軟件。從計(jì)算機(jī)的層次結(jié)構(gòu)上我們可以看出,計(jì)算機(jī)類(lèi)專(zhuān)業(yè)人才從大類(lèi)上分為軟件工程師和硬件工程師,分別工作在計(jì)算機(jī)系統(tǒng)的軟件層和硬件層。
軟件層上的軟件開(kāi)發(fā)及使用的語(yǔ)言。
(1)機(jī)器語(yǔ)言
程序員要開(kāi)發(fā)某個(gè)軟件必須使用某種計(jì)算機(jī)語(yǔ)言。計(jì)算機(jī)硬件唯一認(rèn)識(shí)的語(yǔ)言就是“機(jī)器語(yǔ)言”,這種語(yǔ)言由“0”、“1”二進(jìn)制代碼組成。早期的程序員都是使用機(jī)器語(yǔ)言編程。下面這段機(jī)器語(yǔ)言程序的功能是:完成8和12兩個(gè)數(shù)相加。1011000000001000000001000000110011110100上面的機(jī)器語(yǔ)言程序中包含三條機(jī)器語(yǔ)言指令(每一行是一條機(jī)器語(yǔ)言指令)。從這個(gè)機(jī)器語(yǔ)言程序中我們可以感覺(jué)到,機(jī)器語(yǔ)言如果不特別說(shuō)明,很難看懂,而且編程效率低。
(2)匯編語(yǔ)言
為了解決機(jī)器語(yǔ)言不易看懂、編程效率低的問(wèn)題,就出現(xiàn)了匯編語(yǔ)言。
匯編語(yǔ)言是使用助記符的語(yǔ)言。我們把這3條機(jī)器語(yǔ)言指令對(duì)應(yīng)的匯編語(yǔ)言助記符寫(xiě)下來(lái)。MOVAC,#81011000000001000ADDAC,#120000010000001100HLT11110100上面的程序中,左邊用助記符寫(xiě)的程序我們稱(chēng)為“匯編語(yǔ)言”程序,程序中每一條助記符寫(xiě)的指令我們稱(chēng)之為匯編語(yǔ)言指令。我們可以看到用助記符寫(xiě)的“匯編語(yǔ)言”程序比右邊“機(jī)器語(yǔ)言”程序容易看懂得多。
有了匯編語(yǔ)言,程序員就不再使用機(jī)器語(yǔ)言編程了。計(jì)算機(jī)硬件電路唯一認(rèn)識(shí)的是機(jī)器語(yǔ)言指令,程序員使用匯編語(yǔ)言編寫(xiě)的程序必須“翻譯”成機(jī)器語(yǔ)言程序,這個(gè)過(guò)程叫“匯編”(現(xiàn)在有些教材也稱(chēng)為“編譯”)。
把匯編語(yǔ)言程序“翻譯”成機(jī)器語(yǔ)言程序的專(zhuān)門(mén)程序我們叫“匯編程序”。
“匯編語(yǔ)言”指令和機(jī)器語(yǔ)言指令是一一對(duì)應(yīng)的關(guān)系,如果改變了計(jì)算機(jī)硬件系統(tǒng),機(jī)器語(yǔ)言指令系統(tǒng)要改變,因此,用匯編語(yǔ)言編寫(xiě)的計(jì)算機(jī)程序的可移植性差,這樣對(duì)程序員就很不方便。人們期待有一種可移植性好的計(jì)算機(jī)語(yǔ)言,于是就誕生了“高級(jí)語(yǔ)言”。
(3)高級(jí)語(yǔ)言“高級(jí)語(yǔ)言”是參照數(shù)學(xué)語(yǔ)言而設(shè)計(jì)的近似于日常會(huì)話(huà)的計(jì)算機(jī)語(yǔ)言。
高級(jí)語(yǔ)言不依賴(lài)計(jì)算機(jī)硬件,具有很好的可移植性。人們熟悉的C語(yǔ)言、Java語(yǔ)言等都屬于高級(jí)語(yǔ)言。下面一段程序是用C語(yǔ)言完成的8+12,我們可以看看使用高級(jí)語(yǔ)言C編寫(xiě)的程序和前面講述的用匯編語(yǔ)言、機(jī)器語(yǔ)言程序之間的差異。#include<stdio.h>main(){inta,b;a=8;b=a+12;printf(“%d”,b);}在C語(yǔ)言編寫(xiě)的程序中使用了數(shù)學(xué)中的一些表達(dá)方式:a=8;b=a+12。這樣我們更容易理解。程序中的描述也更接近自然語(yǔ)言。高級(jí)語(yǔ)言也要通過(guò)“翻譯”成機(jī)器語(yǔ)言計(jì)算機(jī)硬件才能運(yùn)行,這個(gè)專(zhuān)門(mén)的“翻譯”程序我們把它稱(chēng)為“編譯程序”,這個(gè)“翻譯”的過(guò)程稱(chēng)為編譯。(4)從程序員的角度看計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)。
這里的實(shí)際機(jī)器就是“硬件”,上面的各種虛擬機(jī)器就是“軟件”如果把實(shí)際機(jī)器的設(shè)計(jì)再細(xì)分為實(shí)際機(jī)器級(jí)和微程序機(jī)器級(jí),計(jì)算機(jī)的層次結(jié)構(gòu)可以看成以下5級(jí)組成。從計(jì)算機(jī)層次結(jié)構(gòu)上看,實(shí)際機(jī)器處于計(jì)算機(jī)層次結(jié)構(gòu)的最底層,是計(jì)算機(jī)系統(tǒng)的物理實(shí)體,是計(jì)算機(jī)系統(tǒng)的基礎(chǔ)。在這個(gè)5級(jí)的層次結(jié)構(gòu)中,上面3級(jí)是計(jì)算機(jī)軟件研究的范圍,下面2級(jí)是計(jì)算機(jī)硬件研究的范圍?!队?jì)算機(jī)組成原理》課程講授的是下面兩級(jí)的計(jì)算機(jī)硬件知識(shí)。3.計(jì)算機(jī)系統(tǒng)的基本體系結(jié)構(gòu)美籍匈牙利數(shù)學(xué)家馮·諾依曼在《關(guān)于電子計(jì)算裝置邏輯結(jié)構(gòu)初探》報(bào)告中所闡述的思想可概括為三點(diǎn):(1)采用二進(jìn)制形式表示數(shù)據(jù)和指令計(jì)算機(jī)采用二進(jìn)制。計(jì)算機(jī)指令是人對(duì)計(jì)算機(jī)發(fā)出的用來(lái)完成一個(gè)最基本操作的工作命令,計(jì)算機(jī)硬件唯一認(rèn)識(shí)的是由“0”和“1”組成的機(jī)器指令。計(jì)算機(jī)中指令和數(shù)據(jù)在代碼的外形上并無(wú)區(qū)別,都是由0和1組成的代碼序列,只是各自約定的含義不同。(2)采用存儲(chǔ)程序的工作方式程序是人們?yōu)榻鉀Q某一實(shí)際問(wèn)題而寫(xiě)出的有序的一條條指令的集合。存儲(chǔ)程序方式意味著事先編制程序并將程序(包含指令和數(shù)據(jù))存入主存儲(chǔ)器中,計(jì)算機(jī)在運(yùn)行程序時(shí)能自動(dòng)地、連續(xù)地從存儲(chǔ)器中依次取出指令并執(zhí)行,直到程序結(jié)束。(3)計(jì)算機(jī)硬件由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五大部件組成4.計(jì)算機(jī)的硬件系統(tǒng)計(jì)算機(jī)硬件系統(tǒng)是由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五大部件組成。
現(xiàn)代計(jì)算機(jī)把運(yùn)算器和控制器做在同一個(gè)芯片內(nèi),稱(chēng)為中央處理器(CentralProcessingUnit,縮寫(xiě)CPU)。計(jì)算機(jī)中的存儲(chǔ)器分為主存儲(chǔ)器和輔助存儲(chǔ)器,計(jì)算機(jī)硬件系統(tǒng)五大組成部件中的存儲(chǔ)器是指主存儲(chǔ)器(MainMemory,簡(jiǎn)稱(chēng)MM)這樣,現(xiàn)代計(jì)算機(jī)把硬件的五大部分歸納為由三大部分組成:CPU,主存儲(chǔ)器(MM),I/O設(shè)備。其中,CPU與主存儲(chǔ)器合起來(lái)稱(chēng)為“主機(jī)”,I/O設(shè)備又稱(chēng)為外部設(shè)備(外設(shè))。(1)運(yùn)算器運(yùn)算器通常由算術(shù)邏輯部件ALU(ArithmeticLogicUnit,縮寫(xiě)ALU)和一系列寄存器組成。運(yùn)算器中最重要的部件是算術(shù)邏輯部件,所以我們有時(shí)候以ALU指代運(yùn)算器。(2)控制器控制器CU(ControlUnit,縮寫(xiě)CU)是計(jì)算機(jī)的指揮中心,它使計(jì)算機(jī)各部件自動(dòng)協(xié)調(diào)地工作。
控制器工作的實(shí)質(zhì)就是解釋程序中的指令,它每次從存儲(chǔ)器讀取一條指令,經(jīng)過(guò)分析譯碼,產(chǎn)生一串操作命令,發(fā)向各個(gè)部件,控制各部件動(dòng)作,完成指令功能,使整個(gè)機(jī)器連續(xù)地、有條不紊地運(yùn)行。(3)存儲(chǔ)器存儲(chǔ)器(Memory)的主要功能是存放指令和數(shù)據(jù)。指令是計(jì)算機(jī)操作的依據(jù),數(shù)據(jù)是計(jì)算機(jī)操作的對(duì)象。不管是指令還是數(shù)據(jù),在存儲(chǔ)器中都是用二進(jìn)制的形式表示,統(tǒng)稱(chēng)為信息。注意:這里所說(shuō)的存儲(chǔ)器是指主存儲(chǔ)器MM(MainMemory,縮寫(xiě)MM)。對(duì)照個(gè)人計(jì)算機(jī)(PC機(jī))來(lái)說(shuō),是指?jìng)€(gè)人計(jì)算機(jī)中的主存或者內(nèi)存,而硬盤(pán)、光盤(pán)、U盤(pán)是輔助存儲(chǔ)器或者外存。CPU就是通過(guò)存儲(chǔ)器的地址編號(hào)(地址)來(lái)尋找存放在存儲(chǔ)器里的指令和數(shù)據(jù)。CPU對(duì)存儲(chǔ)器的操作分為兩種:讀操作和寫(xiě)操作。“讀”操作是指CPU完成從存儲(chǔ)器的某個(gè)存儲(chǔ)單元中取走數(shù)據(jù)的操作;“寫(xiě)”操作是指CPU把自己處理完了的數(shù)據(jù)存入存儲(chǔ)器的某個(gè)存儲(chǔ)單元中的操作。(4)輸入設(shè)備輸入設(shè)備(InputEquipment)是變換輸入信息形式的部件。它將人們熟悉的信息形式變換成計(jì)算機(jī)能接收并識(shí)別的二進(jìn)制信息形式。(5)輸出設(shè)備輸出設(shè)備(OutputEquipment)是變換計(jì)算機(jī)輸出信息形式的部件。輸出設(shè)備的作用是把計(jì)算機(jī)處理完后的一串二進(jìn)制數(shù)據(jù)結(jié)果轉(zhuǎn)換成人們或其它設(shè)備能接收和識(shí)別的形式1.2.2計(jì)算機(jī)的工作過(guò)程1.計(jì)算機(jī)處理實(shí)際問(wèn)題的步驟用計(jì)算機(jī)處理實(shí)際問(wèn)題大致要經(jīng)過(guò)以下幾個(gè)步驟:(1)首先針對(duì)所要解決的問(wèn)題,經(jīng)過(guò)數(shù)學(xué)描述建立起數(shù)學(xué)模型。建立了數(shù)學(xué)模型,研究對(duì)象的變化規(guī)律就變成了解一系列方程組的數(shù)學(xué)問(wèn)題,這便可通過(guò)計(jì)算機(jī)來(lái)求解。(2)再經(jīng)數(shù)值分析,將數(shù)學(xué)模型轉(zhuǎn)變?yōu)榻频臄?shù)值計(jì)算公式。數(shù)學(xué)模型中的數(shù)學(xué)方程式往往是很復(fù)雜的,所以必須確定對(duì)應(yīng)的計(jì)算方法,將它變成適合計(jì)算機(jī)運(yùn)算的加、減、乘、除四則運(yùn)算。(3)按照計(jì)算公式畫(huà)出計(jì)算程序的流程圖。根據(jù)流程圖使用某種計(jì)算機(jī)語(yǔ)言編制出計(jì)算程序。(4)然后通過(guò)輸入設(shè)備將計(jì)算程序和原始數(shù)據(jù)送入存儲(chǔ)器。2.計(jì)算機(jī)的解題過(guò)程我們用一個(gè)極簡(jiǎn)單的例子按照上面的步驟編寫(xiě)一段程序,然后用一個(gè)計(jì)算機(jī)的模型機(jī)介紹程序在計(jì)算機(jī)中的執(zhí)行過(guò)程,從而了解計(jì)算機(jī)的工作過(guò)程。例如:我們要求機(jī)器把兩個(gè)數(shù)8和12相加。按照前面所說(shuō)的計(jì)算機(jī)解題步驟,第一步:建立數(shù)學(xué)模型,第二步:確定計(jì)算方法。由于題目十分簡(jiǎn)單,這兩步就不需要,我們可以直接進(jìn)入到第三步:使用計(jì)算機(jī)匯編語(yǔ)言編寫(xiě)源程序如下:MOVAC,#8;數(shù)值8送到寄存器AC中
ADDAC,#12;數(shù)值12和寄存器AC的內(nèi)容相加送到AC中
HLT;暫停。源程序中分號(hào)后面是對(duì)指令的注釋。我們把上面這段匯編語(yǔ)言源程序?qū)?yīng)的機(jī)器語(yǔ)言指令寫(xiě)出來(lái)如下(左邊是匯編語(yǔ)言指令,右邊是機(jī)器語(yǔ)言指令),其中前面兩條指令對(duì)應(yīng)的機(jī)器語(yǔ)言指令是16位二進(jìn)制數(shù),我們把他們分成兩行,每行是一個(gè)8位二進(jìn)制數(shù):
MOVAC,#81011000000001000ADDAL,#120000010000001100HLT11110100
計(jì)算機(jī)的機(jī)器語(yǔ)言指令都是由兩個(gè)部分組成:操作碼(OpCode)和操作數(shù)(Operand)(或操作數(shù)的地址碼)為了說(shuō)明第四步計(jì)算機(jī)硬件的工作過(guò)程,通過(guò)一個(gè)簡(jiǎn)單和細(xì)化的計(jì)算機(jī)模型機(jī)來(lái)具體描述。如圖1.20所示:模型機(jī)的結(jié)構(gòu)圖是由中央處理器(CPU)和主存儲(chǔ)器組成,在圖中以虛線(xiàn)為界限,虛線(xiàn)以上是CPU部分,虛線(xiàn)以下是主存儲(chǔ)器部分,兩者合起來(lái)構(gòu)成計(jì)算機(jī)的主機(jī)。(1)模型機(jī)介紹首先介紹模型機(jī)中CPU結(jié)構(gòu),計(jì)算機(jī)中的CPU是由運(yùn)算器和控制器兩部分組成。
①運(yùn)算器
如圖1.20所示,模型機(jī)中CPU的運(yùn)算器部分是由算術(shù)邏輯單元ALU和一些寄存器組成。
寄存器AC(Accumulator,縮寫(xiě)AC或ACC):連接運(yùn)算器的I1端。寄存器AC由于在計(jì)算機(jī)機(jī)器指令中使用最頻繁,所以它有個(gè)專(zhuān)門(mén)的名稱(chēng):累加器。
寄存器BX:作為通用寄存器,可以通過(guò)內(nèi)部總線(xiàn)連接到運(yùn)算器的I2端。
數(shù)據(jù)寄存器MDR(MemoryDataRegister,縮寫(xiě)MDR):存放從主存儲(chǔ)器讀出的指令或數(shù)據(jù)等。
②控制器
程序計(jì)數(shù)器PC(ProgramCounter,縮寫(xiě)PC)當(dāng)前要執(zhí)行的指令的地址由程序計(jì)數(shù)器PC提供,它在執(zhí)行完一條指令后會(huì)自動(dòng)加1指向下一條指令的地址。指令寄存器IR(InstructionRegister,縮寫(xiě)IR):從主存儲(chǔ)器中取出的指令,由主存數(shù)據(jù)寄存器MDR通過(guò)內(nèi)部總線(xiàn)送至指令寄存器IR,控制單元CU(ControlUnit,縮寫(xiě)CU):把指令寄存器IR中的指令通過(guò)控制電路(CU)譯碼分析,發(fā)出執(zhí)行一條指令所需要的各種控制信息。
主存地址寄存器MAR(MemoryAddressRegister,縮寫(xiě)MAR):由它把要尋找的存儲(chǔ)單元的地址通過(guò)地址總線(xiàn),送至主存儲(chǔ)器。
(2)機(jī)器語(yǔ)言目標(biāo)程序執(zhí)行過(guò)程為了簡(jiǎn)化問(wèn)題,我們認(rèn)為要執(zhí)行的程序指令以及數(shù)據(jù),已經(jīng)通過(guò)輸入設(shè)備存入主存儲(chǔ)器內(nèi)。假定每個(gè)主存儲(chǔ)器地址對(duì)應(yīng)的存儲(chǔ)單元中只能存放8位二進(jìn)制數(shù),所以前面程序中的三條機(jī)器語(yǔ)言指令需要5個(gè)存儲(chǔ)單元,每個(gè)單元有一個(gè)編號(hào)(采用二進(jìn)制數(shù)),我們稱(chēng)為存儲(chǔ)器地址(Address)。如表1.2所示。表1.2機(jī)器語(yǔ)言指令在存儲(chǔ)器中的存放
計(jì)算機(jī)的具體工作過(guò)程:第一步:CPU從主存儲(chǔ)器中取第一條指令到CPU中,這個(gè)過(guò)程稱(chēng)為“取指”,第二步:CPU取到指令后根據(jù)指令的操作碼部分執(zhí)行這條指令的相應(yīng)功能,這個(gè)過(guò)程稱(chēng)為“執(zhí)行”。在執(zhí)行完第一條指令后接下來(lái)又去取第二條指令,再執(zhí)行第二條指令……,周而復(fù)始直到程序結(jié)束。地址存儲(chǔ)器中存放的機(jī)器語(yǔ)言指令注釋0000000010110000MOVAC,#n0000000100001000n=80000001000000100ADDAC,#n0000001100001100n=120000010011110100HLT(1)在啟動(dòng)程序運(yùn)行時(shí),首先給PC賦以第一條指令的地址:00000000,然后就進(jìn)入第一條指令的取指階段。取指過(guò)程如圖1.21。對(duì)照?qǐng)D1.21
具體說(shuō)明如下:① PC的內(nèi)容(00000000)送至地址寄存器MAR。② 當(dāng)PC的內(nèi)容可靠地送入地址寄存器MAR后,PC的內(nèi)容加1變?yōu)?0000001。③ 地址寄存器MAR把地址編號(hào)00000000通過(guò)地址總線(xiàn)(AB)送至主存儲(chǔ)器。經(jīng)地址譯碼器譯碼,選中00000000號(hào)(圖中十進(jìn)制0號(hào))單元。④ CPU通過(guò)控制總線(xiàn)(CB)發(fā)出讀命令。⑤ 所選中的00000000號(hào)(十進(jìn)制0號(hào))單元的內(nèi)容10110000讀至數(shù)據(jù)總線(xiàn)上。⑥ 讀出的數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)總線(xiàn)(DB)送至數(shù)據(jù)寄存器MDR。⑦ 因?yàn)槭侨≈鸽A段,取出的是指令,故數(shù)據(jù)寄存器MDR把它送至指令寄存器IR,然后經(jīng)過(guò)控制器CU譯碼后發(fā)出執(zhí)行這條指令的各種控制命令。(2)此后就轉(zhuǎn)入了執(zhí)行第一條指令的階段。第一條指令的功能是把指令第二個(gè)字節(jié)中的操作數(shù)取出來(lái),然后送入累加器AC中。執(zhí)行指令的過(guò)程如圖1.22所示。對(duì)照?qǐng)D1.22取操作數(shù)并執(zhí)行第一條指令的過(guò)程如下:① 把PC的內(nèi)容00000001送至地址寄存器MAR。② 待PC的內(nèi)容可靠地送至地址寄存器MAR后,PC自動(dòng)加l,變?yōu)?0000010。③ 地址寄存器MAR把地址編號(hào)00000001通過(guò)地址總線(xiàn)(AB)送至主存儲(chǔ)器。經(jīng)地址譯碼器譯碼,選中00000001號(hào)(圖中十進(jìn)制1號(hào))單元。④ CPU通過(guò)控制總線(xiàn)(CB)發(fā)出讀命令。⑤ 所選中的00000001號(hào)(十進(jìn)制1號(hào))單元的內(nèi)容:00001000(十進(jìn)制數(shù)8)讀至數(shù)據(jù)總線(xiàn)上。⑥ 讀出的數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)總線(xiàn)(DB)送至數(shù)據(jù)寄存器MDR。因?yàn)橐阎x出的是操作數(shù),且指令要求把它送累加器AC,故由MDR通過(guò)內(nèi)部數(shù)據(jù)總線(xiàn)送至累加器AC中。
至此,第一條指令執(zhí)行完畢進(jìn)入第二條指令的取指階段。(3)取第二條指令的具體過(guò)程如圖1.23所示:對(duì)照?qǐng)D1.23取第二條指令的過(guò)程如下:① PC的內(nèi)容(00000010)送至地址寄存器MAR。② 當(dāng)PC的內(nèi)容可靠地送入地址寄存器MAR后,PC的內(nèi)容加1變?yōu)?0000011。③ 地址寄存器MAR把地址編號(hào)00000010通過(guò)地址總線(xiàn)(AB)送至主存儲(chǔ)器。經(jīng)地址譯碼器譯碼,選中00000010號(hào)(圖中十進(jìn)制2號(hào))單元。④ CPU通過(guò)控制總線(xiàn)(CB)發(fā)出讀命令。⑤ 所選中的00000010號(hào)(十進(jìn)制2號(hào))單元的內(nèi)容00000100讀至數(shù)據(jù)總線(xiàn)上。⑥ 讀出的數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)總線(xiàn)(DB)送至數(shù)據(jù)寄存器MDR。因?yàn)槭侨≈鸽A段,取出的是指令,故數(shù)據(jù)寄存器MDR把它送至指令寄存器IR,然后經(jīng)過(guò)控制器CU譯碼后發(fā)出執(zhí)行這條指令的各種控制命令。
取指令完成后,接著執(zhí)行第二條指令。
(4)參考圖1.24,取操作數(shù)并執(zhí)行第二條指令的具體過(guò)程為:① 把PC的內(nèi)容00000011送至地址寄存器MAR。② 待PC的內(nèi)容可靠地送至地址寄存器MAR后,PC自動(dòng)加l,變?yōu)?0000100。③ 地址寄存器MAR把地址編號(hào)00000011通過(guò)地址總線(xiàn)(AB)送至主存儲(chǔ)器。經(jīng)地址譯碼器譯碼,選中00000011號(hào)(圖中十進(jìn)制3號(hào))單元。④ CPU通過(guò)控制總線(xiàn)(CB)發(fā)出讀命令。⑤ 所選中的00000011號(hào)(十進(jìn)制3號(hào))單元的內(nèi)容:00001100(十進(jìn)制數(shù)12)讀至數(shù)據(jù)總線(xiàn)(DB)上。⑥ 讀出的數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)總線(xiàn)(DB)送至數(shù)據(jù)寄存器MDR。⑦ 因?yàn)橐阎x出的是操作數(shù),且指令要求把它和累加器AC中的數(shù)據(jù)相加,故把讀出的數(shù)據(jù)由MDR通過(guò)內(nèi)部數(shù)據(jù)總線(xiàn)送至ALU的一個(gè)輸入端I2。⑧ 累加器AC中的數(shù)據(jù)送入ALU的輸入端I1,并且做加法運(yùn)算。⑨ 相加后的結(jié)果00010100(十進(jìn)制數(shù)20)由ALU的輸出端OUT經(jīng)過(guò)內(nèi)部數(shù)據(jù)總線(xiàn)輸出到累加器AC中。至此,第二條指令的執(zhí)行階段結(jié)束了,就轉(zhuǎn)入第三條指令的取指階段。按上述類(lèi)似的過(guò)程,取出第三條指令,第三條指令功能是暫停機(jī)器,執(zhí)行完后就暫停機(jī)器。這樣,計(jì)算機(jī)通過(guò)一個(gè)三條指令的程序,完成了8+12=20的計(jì)算,運(yùn)算結(jié)果存在累加器AC中。從上面對(duì)計(jì)算機(jī)工作過(guò)程的描述中我們知道,CPU中的程序計(jì)數(shù)器PC是計(jì)算機(jī)能夠自動(dòng)執(zhí)行程序的關(guān)鍵。它每執(zhí)行一步后能夠自動(dòng)加1,指向下一步,使得存放在存儲(chǔ)器中的每一條指令能自動(dòng)順序執(zhí)行,直到遇到停止執(zhí)行指令為止。
小結(jié):計(jì)算機(jī)的工作過(guò)程就是CPU的從主存儲(chǔ)器中逐條取指令和執(zhí)行指令的過(guò)程。1.2.3計(jì)算機(jī)的主要技術(shù)指標(biāo)計(jì)算機(jī)的一些主要技術(shù)指標(biāo)如下。1.機(jī)器字長(zhǎng)機(jī)器字長(zhǎng)是指:CPU內(nèi)部寄存器、運(yùn)算器及數(shù)據(jù)總線(xiàn)等部件之間傳遞和處理數(shù)據(jù)的寬度,也是CPU內(nèi)部能進(jìn)行一次算術(shù)運(yùn)算數(shù)據(jù)的位數(shù)。2.主存儲(chǔ)器容量幾種存儲(chǔ)器容量單位。(1)位(bit,縮寫(xiě)b):在計(jì)算機(jī)中,指一個(gè)二進(jìn)制位,由“0”和“1”兩種狀態(tài)組成。(2)字節(jié)(Byte,縮寫(xiě)B(tài)):計(jì)算機(jī)的存儲(chǔ)器中通常用字節(jié)作為基本存儲(chǔ)單位。一個(gè)字節(jié)等于8個(gè)二進(jìn)制位。1Byte=8bit。(3)字(Word):機(jī)器字長(zhǎng),不同CPU機(jī)器字長(zhǎng)不同,可能是8位二進(jìn)制數(shù),也可能是16位、32位、64位二進(jìn)制數(shù)。
主存容量是指主存儲(chǔ)器能存放二進(jìn)制數(shù)據(jù)的總位數(shù)。對(duì)于大容量存儲(chǔ)器還可以用千字節(jié)(KB)、兆字(MB)、吉字節(jié)(GB)、太字節(jié)(TB)等表示。其換算關(guān)系為。
1KB=1024B;1MB=1024KB;1GB=1024MB;1TB=1024GB3.運(yùn)算速度常見(jiàn)的計(jì)算方法是給出單位時(shí)間內(nèi)執(zhí)行指令的平均條數(shù)作為運(yùn)算速度指標(biāo),通常以MIPS(MillionInstructionPerSecond,縮寫(xiě)MIPS),即每秒百萬(wàn)條指令作為計(jì)量單位。也可以用CPI(CyclePerInstruction)即執(zhí)行一條指令所需的時(shí)鐘周期數(shù)。
超級(jí)計(jì)算機(jī)常用FLOPS(FloatingPointOperationPerSecond)即每秒浮點(diǎn)運(yùn)算次數(shù)作為機(jī)器運(yùn)算速度的重要指標(biāo)之一。4.軟、硬件配置衡量一個(gè)計(jì)算機(jī)的性能還要看整個(gè)系統(tǒng)軟件和硬件配置的情況。5.可靠性計(jì)算機(jī)的可靠性一般用平均無(wú)故障運(yùn)行時(shí)間(MeanTimeBetweenFailure,縮寫(xiě)MTBF)來(lái)衡量。6.性能價(jià)格比性能價(jià)格比是指計(jì)算機(jī)性能與價(jià)格的比值。第2章計(jì)算機(jī)中數(shù)據(jù)的表示與運(yùn)算2.1進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換計(jì)算機(jī)在進(jìn)行數(shù)據(jù)的加工處理時(shí),內(nèi)部數(shù)字電路存儲(chǔ)和運(yùn)算使用的數(shù)據(jù)是采用二進(jìn)制計(jì)數(shù)制,簡(jiǎn)稱(chēng)二進(jìn)制(Binary)。現(xiàn)實(shí)生活中,人們使用的是十進(jìn)制。為了實(shí)現(xiàn)計(jì)算機(jī)運(yùn)算,現(xiàn)實(shí)生活中的十進(jìn)制數(shù)必須轉(zhuǎn)換成計(jì)算機(jī)認(rèn)識(shí)的二進(jìn)制數(shù)。計(jì)算機(jī)工程師在實(shí)際產(chǎn)品研發(fā)過(guò)程中為了書(shū)寫(xiě)方便,在計(jì)算機(jī)中就引入了八進(jìn)制和十六進(jìn)制。在本小節(jié)我們要學(xué)習(xí)如何將十進(jìn)制、八進(jìn)制、十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制;同時(shí)也將學(xué)習(xí)把八進(jìn)制或十六進(jìn)制、二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成我們現(xiàn)實(shí)生活中的十進(jìn)制。。2.1.1進(jìn)位計(jì)數(shù)制無(wú)論哪種進(jìn)位計(jì)數(shù)制都有兩個(gè)共同點(diǎn),即按基數(shù)來(lái)進(jìn)位、借位;用位權(quán)值來(lái)計(jì)數(shù)。1.基數(shù)不同的計(jì)數(shù)制是以基數(shù)(Radix)來(lái)區(qū)分的,若以R代表基數(shù),則:
R=10為十進(jìn)制,可使用0,1,2,3,4,5,6,7,8,9共10個(gè)數(shù)字;
R=2
為二進(jìn)制,可使用0,1共2個(gè)數(shù)字;
R=8為八進(jìn)制,可使用0,1,2,3,4,5,6,7共8個(gè)數(shù)字;
R=16為十六進(jìn)制,可使用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)共16個(gè)數(shù)字。所謂按基數(shù)進(jìn)位、借位,就是在執(zhí)行加法或減法時(shí),要遵守“逢R進(jìn)一,借一當(dāng)R”的規(guī)則。2.位權(quán)值在任何一種數(shù)制中,數(shù)的每個(gè)位置上各有一個(gè)“位權(quán)值”(PositionWeightValue)。例如:十進(jìn)制數(shù)752.65,這個(gè)數(shù)以小數(shù)點(diǎn)為界,整數(shù)部分是小數(shù)點(diǎn)前從右往左共有3個(gè)位置,分別為個(gè)、十、百或100,101,102。此處的100,101,102即稱(chēng)為這3個(gè)位置的位權(quán)值。類(lèi)似地,小數(shù)部分是小數(shù)點(diǎn)后從左往右的兩個(gè)位置的位權(quán)值分別為10-1,10-2。如果是R進(jìn)制,將10的位置用R代替。例如采用二進(jìn)制,則整數(shù)部分相應(yīng)的位權(quán)值為:20,21,22……。小數(shù)部分的位權(quán)值為:2-1,2-2……。所謂“用位權(quán)值計(jì)數(shù)”的原則,即每個(gè)位置上的數(shù)符所表示的數(shù)值等于該數(shù)符乘以該位置上的位權(quán)值。3.R進(jìn)制數(shù)按位權(quán)值展開(kāi)對(duì)于任意一個(gè)R進(jìn)制數(shù)S=KnKn-1…K1K0.K-1K-2…K-m,它都可以按照位權(quán)值展開(kāi)成和式來(lái)表示成十進(jìn)制數(shù)。即S=Kn×Rn+Kn-1×Rn-1+…+K1×R1+K0×R0+K-1×R-1+K-2×R-2+…+K-m×R-m例如:十進(jìn)制數(shù)752.65=7×102+5×101+2×100+6×10-1+5×10-2
=7×100+5×10+2×1+6×0.1+5×0.01。二進(jìn)制數(shù)101.11=1×22+0×21+1×20+1×2-1+1×2-2
2.1.2不同數(shù)制間的轉(zhuǎn)換1.二、八、十六進(jìn)制轉(zhuǎn)換為十進(jìn)制對(duì)任意一個(gè)二進(jìn)制、八進(jìn)制或十六進(jìn)制數(shù),均可按照前述R進(jìn)制數(shù)的展開(kāi)和式方便地計(jì)算出相應(yīng)的十進(jìn)制數(shù)。(1101.01)2=1×23+1×22+0×21+1×20+0×2-1+1×2-2=8+4+1+0.25=13.25(237.4)8=2×82+3×81+7×80+4×8-1=128+24+7+0.5=159.5(A05.C)16=l0×162+0×161+5×160+12×16-1=2560+5+0.75=2565.752.十進(jìn)制轉(zhuǎn)換為二、八、十六進(jìn)制十進(jìn)制數(shù)轉(zhuǎn)換為R進(jìn)制數(shù)分整數(shù)轉(zhuǎn)換與小數(shù)轉(zhuǎn)換兩種情況:(1)十進(jìn)制整數(shù)轉(zhuǎn)換為R進(jìn)制整數(shù)。轉(zhuǎn)換規(guī)則為:除以R取余數(shù),直到商為0時(shí)結(jié)束。所得余數(shù)序列,先余為低位,后余為高位。(2)十進(jìn)制小數(shù)轉(zhuǎn)換為R進(jìn)制小數(shù)。轉(zhuǎn)換規(guī)則為:乘以R取整數(shù),直到余下的小數(shù)部分為0時(shí)結(jié)束,如果余下的小數(shù)部分始終不能為0,則根據(jù)精度需要取相應(yīng)的位數(shù)。所得整數(shù)序列,先整為高位,后整為低位。例題2.1求(11.375)10=()2解:把十進(jìn)制數(shù)寫(xiě)成整數(shù)部分和小數(shù)部分之和的形式:11.375=11+0.375先進(jìn)行整數(shù)部分進(jìn)行轉(zhuǎn)換:(十進(jìn)制數(shù)11除以2取余數(shù),直到商為0)商余數(shù)
11/2=515/2=212/2=101/2=01按照規(guī)則先余為低位,后余為高位。則(11)10=(1011)2然后進(jìn)行小數(shù)部分轉(zhuǎn)換:(十進(jìn)制數(shù)0.375乘以2取整,直到余數(shù)為0)整數(shù)部分取整后余下的小數(shù)部分
0.375×2=0.75=0+0.750.75×2=1.5=1+0.50.5×2=1+0(結(jié)束)按照規(guī)則先整為高位,后整為低位。則(0.375)10=(0.011)2把整數(shù)和小數(shù)部分合起來(lái),得到答案:(11.375)10=(1011.011)23.八、十六進(jìn)制轉(zhuǎn)換為二進(jìn)制八進(jìn)制轉(zhuǎn)換成二進(jìn)制的規(guī)則:按照表2.1將每位八進(jìn)制數(shù)轉(zhuǎn)換為3位二進(jìn)制數(shù)。表2.1二進(jìn)制與八進(jìn)制轉(zhuǎn)換表十六進(jìn)制轉(zhuǎn)換成二進(jìn)制的規(guī)則:按照表2.2將每位十六進(jìn)制數(shù)轉(zhuǎn)換為4位二進(jìn)制數(shù)。
表2.2二進(jìn)制與十六進(jìn)制轉(zhuǎn)換表1位八進(jìn)制數(shù)012345673位二進(jìn)制數(shù)0000010100111001011101111位十六進(jìn)制數(shù)012345674位二進(jìn)制數(shù)000000010010001101000101011001111位十六進(jìn)制數(shù)89ABCDEF4位二進(jìn)制數(shù)10001001101010111100110111101111例題2.3
求(30.14)8=()2解:將題中八進(jìn)制中的每一位數(shù)按照表2.1展開(kāi),即每位八進(jìn)制數(shù)展開(kāi)成3位二進(jìn)制數(shù),小數(shù)點(diǎn)位置保持不變。這樣(30.14)8=(011000.001100)2
轉(zhuǎn)換后,再將整數(shù)前面的0和小數(shù)后面的0去掉,這樣做不影響結(jié)果,數(shù)值表述更規(guī)范。得到答案:(30.14)8=(11000.0011)2例題2.4
求(70C.A)16=()2解:將題中十六進(jìn)制中的每一位數(shù)按照表2.2展開(kāi),即每位十六進(jìn)制數(shù)展開(kāi)成4位二進(jìn)制數(shù),小數(shù)點(diǎn)位置保持不變。這樣(70C.A)16=(011100001100.1010)2轉(zhuǎn)換后,再將整數(shù)前面的0和小數(shù)后面的0去掉,這樣做不影響結(jié)果,數(shù)值表述更規(guī)范。得到答案:(70C.A)16=(11100001100.101)24.二進(jìn)制轉(zhuǎn)換為八、十六進(jìn)制二進(jìn)制轉(zhuǎn)換成八進(jìn)制的規(guī)則:以小數(shù)點(diǎn)為中心,整數(shù)部分向左、小數(shù)部分向右每3位一組,首尾不足3位添加0補(bǔ)足。按照表2.1將每組3位二進(jìn)制數(shù)轉(zhuǎn)換為1位八進(jìn)制數(shù)。
二進(jìn)制轉(zhuǎn)換成十六進(jìn)制的規(guī)則:以小數(shù)點(diǎn)為中心,整數(shù)部分向左、小數(shù)部分向右每4位一組,首尾不足4位添加0補(bǔ)足。按照表2.2將每組4位二進(jìn)制數(shù)轉(zhuǎn)換為1位十六進(jìn)制數(shù)。例題2.5求(1111100110.10111)2=()8解:先將題中二進(jìn)制中的數(shù)以小數(shù)點(diǎn)為中心,分別向左、向右每3位一組,首尾不足3位添加0補(bǔ)足。(1111100110.10111)2=(001111100110.101110)2然后按照表2.1將每組3位二進(jìn)制數(shù)轉(zhuǎn)換為1位八進(jìn)制數(shù)。得到答案:(1111100110.10111)2=(001111100110.101110)2=(1746.56)8例題2.6求(1111100110.10111)2=()16解:先將題中二進(jìn)制中的數(shù)以小數(shù)點(diǎn)為中心,分別向左、向右每4位一組,首尾不足4位添加0補(bǔ)足。(1111100110.10111)2=(001111100110.10111000)2然后按照表2.2將每組4位二進(jìn)制數(shù)轉(zhuǎn)換為1位十六進(jìn)制數(shù)。得到答案:(1111100110.10111)2=(001111100110.10111000)2=(3E6.B8)16結(jié)論:從上面例題可以看出,用八進(jìn)制和十六進(jìn)制表達(dá)一個(gè)同樣大小的二進(jìn)制數(shù),位數(shù)少了許多。這樣,用八進(jìn)制或十六進(jìn)制書(shū)寫(xiě)二進(jìn)制數(shù)簡(jiǎn)單方便,不容易出錯(cuò)。同時(shí),八進(jìn)制或十六進(jìn)制和二進(jìn)制之間的互相轉(zhuǎn)換非常容易。這就是為什么計(jì)算機(jī)選用八進(jìn)制、十六進(jìn)制書(shū)寫(xiě)二進(jìn)制數(shù)的原因。2.2數(shù)值型數(shù)據(jù)的表示方法計(jì)算機(jī)中處理的數(shù)據(jù)包括兩大類(lèi)型:數(shù)值型數(shù)據(jù)和非數(shù)值型數(shù)據(jù)。本節(jié)介紹數(shù)值型數(shù)據(jù)。數(shù)值型數(shù)據(jù)分為兩種情況:一種是無(wú)符號(hào)數(shù);另一種是有符號(hào)數(shù)。2.2.1無(wú)符號(hào)數(shù)生活中的數(shù)據(jù),有些數(shù)據(jù)它始終是整數(shù),而且不會(huì)是負(fù)數(shù)。這樣的數(shù)據(jù)很多,例如:班級(jí)的學(xué)號(hào),房間的門(mén)牌號(hào)等。在計(jì)算機(jī)中這樣的數(shù)就稱(chēng)為無(wú)符號(hào)數(shù)。
所謂無(wú)符號(hào)數(shù)就是給定的二進(jìn)制數(shù)中的每一位都是數(shù)值位,不需要考慮符號(hào)位。為了說(shuō)明簡(jiǎn)單方便,本書(shū)中約定都用8位二進(jìn)制數(shù)(N=8)來(lái)舉例說(shuō)明。16位、32位、64位可照此推理。8位二進(jìn)制數(shù)(N=8)能表示的最大無(wú)符號(hào)數(shù)據(jù)為:轉(zhuǎn)換成十進(jìn)制數(shù)就是:28-1=255。8位二進(jìn)制數(shù)(N=8)能表示的最小無(wú)符號(hào)數(shù)為:轉(zhuǎn)換成十進(jìn)制數(shù)就是:08位二進(jìn)制數(shù)(N=8)表示的無(wú)符號(hào)數(shù)的范圍:0~255。N位二進(jìn)制數(shù)表示的無(wú)符號(hào)數(shù)的范圍:0~2N-1例如:十進(jìn)制數(shù)12寫(xiě)成計(jì)算機(jī)中的無(wú)符號(hào)數(shù),用8位二進(jìn)制數(shù)(N=8)表示,其步驟如下:首先把十進(jìn)制數(shù)12轉(zhuǎn)換成二進(jìn)制數(shù):(12)10=(1100)2,然后用8位二進(jìn)制數(shù)(N=8)來(lái)表示成無(wú)符號(hào)數(shù)如下:1111111100000000000011002.2.2有符號(hào)數(shù)
1.真值與機(jī)器數(shù)實(shí)際生活中的數(shù)據(jù)除開(kāi)無(wú)符號(hào)數(shù)以外,更多的是有符號(hào)數(shù)。比如:秋天溫度+12度,冬天溫度-5度。這些數(shù)據(jù)需要用符號(hào)來(lái)描述,其中的數(shù)據(jù):+12,-5,我們稱(chēng)為“真值”,由于生活中采用十進(jìn)制,所以這兩個(gè)數(shù)據(jù)稱(chēng)為十進(jìn)制真值。所謂“真值”
,就是生活中的真實(shí)數(shù)據(jù)。由于計(jì)算機(jī)采用二進(jìn)制處理數(shù)據(jù),所以上面兩個(gè)十進(jìn)制真值數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制真值分別為:(+12)10=(+1100)2(-5)10=(-101)2在計(jì)算機(jī)中我們對(duì)于“有符號(hào)數(shù)”
的約定為:正號(hào)(+)使用數(shù)字“0”來(lái)表示,負(fù)號(hào)(-)使用數(shù)字“1”來(lái)表示,同時(shí)規(guī)定符號(hào)位于二進(jìn)制數(shù)據(jù)的最高位。按照這種約定的數(shù)據(jù)能被計(jì)算機(jī)很好的處理,所以稱(chēng)為“機(jī)器數(shù)”。2.原碼、反碼、補(bǔ)碼有符號(hào)數(shù)(機(jī)器數(shù))在計(jì)算機(jī)中有三種表示形式:原碼、反碼、補(bǔ)碼。(1)原碼原碼規(guī)則:用最高位表示數(shù)值的符號(hào),其后各位用該數(shù)值的絕對(duì)值來(lái)表示。例題2.7求(+19)10的原碼解:首先把十進(jìn)制真值(+19)10
轉(zhuǎn)換成二進(jìn)制真值:(+19)10=(+10011)2用8位二進(jìn)制數(shù)(N=8)來(lái)表示它的原碼如下(最高位為符號(hào)位):例題2.8求(-15)10的原碼解:首先把十進(jìn)制真值(-15)10
轉(zhuǎn)換成二進(jìn)制真值:(-15)10=(-1111)2用8位二進(jìn)制數(shù)(N=8)來(lái)表示它的原碼如下(最高位為符號(hào)位)00010011100011118位二進(jìn)制數(shù)(N=8)能表示的最大原碼數(shù)值為:轉(zhuǎn)換成十進(jìn)制數(shù)就是:+(27-1)=+127。8位二進(jìn)制數(shù)(N=8)能表示的最小原碼數(shù)值為:轉(zhuǎn)換成十進(jìn)制數(shù)就是:-(27-1)=-127由此,我們可以得到,用8位二進(jìn)制數(shù)(N=8)表示的原碼數(shù)值范圍:-127~+127。如果寫(xiě)出N位二進(jìn)制數(shù)表示的原碼數(shù)值范圍:-(2N-1-1)~+(2N-1-1)
0111111111111111(2)反碼反碼規(guī)則:正數(shù)的反碼和原碼相同。
負(fù)數(shù)的反碼為其原碼除開(kāi)符號(hào)位以外的各位按位取反。例題2.9求(+19)10的反碼解:首先把十進(jìn)制真值(+19)10
轉(zhuǎn)換成二進(jìn)制真值:(+19)10=(+10011)2用8位二進(jìn)制數(shù)(N=8)來(lái)表示它的原碼如下(最高位為符號(hào)位):根據(jù)反碼規(guī)則,正數(shù)的反碼和原碼是相同的。所以(+19)10
的反碼如下:例題2.10求(-15)10的反碼解:首先把十進(jìn)制真值(-15)10
轉(zhuǎn)換成二進(jìn)制真值:(-15)10=(-1111)2用8位二進(jìn)制數(shù)(N=8)來(lái)表示它的原碼如下(最高位為符號(hào)位)0001001110001111根據(jù)反碼規(guī)則:負(fù)數(shù)的反碼為其原碼除開(kāi)符號(hào)位以外的各位按位取反。故得出(-15)10的反碼如下:
注意:
8位二進(jìn)制數(shù)(N=8)反碼的數(shù)值范圍原碼數(shù)值范圍是相同的:-127~+127。
如果寫(xiě)出N位二進(jìn)制數(shù)表示的反碼數(shù)值范圍為:-(2N-1-1)~+(2N-1-1)。(3)補(bǔ)碼補(bǔ)碼規(guī)則:正數(shù)的補(bǔ)碼和原碼相同。負(fù)數(shù)的補(bǔ)碼為其負(fù)數(shù)的補(bǔ)碼為其反碼在最低位加1。例題2.11求(+19)10的補(bǔ)碼解:首先把十進(jìn)制真值(+19)10
轉(zhuǎn)換成二進(jìn)制真值:(+19)10=(+10011)2用8位二進(jìn)制數(shù)(N=8)來(lái)表示它的原碼如下(最高位為符號(hào)位):
1111000000010011根據(jù)補(bǔ)碼規(guī)則:正數(shù)的補(bǔ)碼和原碼相同。所以(+19)10
的補(bǔ)碼如下:例題2.12求(-15)10的補(bǔ)碼解:首先把十進(jìn)制真值(-15)10
轉(zhuǎn)換成二進(jìn)制真值:(-15)10=(-1111)2用8位二進(jìn)制數(shù)(N=8)來(lái)表示它的原碼如下(最高位為符號(hào)位)根據(jù)反碼規(guī)則,負(fù)數(shù)的反碼為其原碼除開(kāi)符號(hào)位以外的各位按位取反。故得出(-15)10的反碼如下:再根據(jù)補(bǔ)碼規(guī)則:負(fù)數(shù)的補(bǔ)碼為其反碼在最低位加1。最后得出(-15)10的補(bǔ)碼如下:111100018位二進(jìn)制數(shù)(N=8)能表示的最大補(bǔ)碼數(shù)值為(和原碼相同):轉(zhuǎn)換成十進(jìn)制數(shù)就是:+(27-1)=+127。8位二進(jìn)制數(shù)(N=8)能表示的最小補(bǔ)碼數(shù)值為:這個(gè)數(shù)值是一個(gè)特例,其中最高位即看成符號(hào)位(是一個(gè)負(fù)數(shù)),同時(shí)又看成數(shù)值位(權(quán)值為27)。轉(zhuǎn)換成十進(jìn)制數(shù)就是:-27
=-128由此,我們可以得到,用8位二進(jìn)制數(shù)(N=8)表示的補(bǔ)碼數(shù)值范圍:-128~+127。如果寫(xiě)出N位二進(jìn)制數(shù)表示的補(bǔ)碼數(shù)值范圍:-2N-1
~+(2N-1-1)
100000003.補(bǔ)碼與原碼之間的轉(zhuǎn)換今天絕大多數(shù)計(jì)算機(jī)采用補(bǔ)碼設(shè)計(jì)算術(shù)運(yùn)算器電路,故稱(chēng)為補(bǔ)碼計(jì)算機(jī)。在計(jì)算機(jī)研究中,常常會(huì)遇到已知補(bǔ)碼求原碼的情況。主要是因?yàn)樨?fù)數(shù)的補(bǔ)碼不能直接看出它的二進(jìn)制值,必須轉(zhuǎn)換成原碼才能知道它的二進(jìn)制值。已知補(bǔ)碼求原碼的規(guī)則:(1)正數(shù)的補(bǔ)碼,其原碼等于補(bǔ)碼本身。(2)負(fù)數(shù)的補(bǔ)碼,其原碼為除開(kāi)符號(hào)位以外將補(bǔ)碼的數(shù)值位按位求反后在末位加1。例題2.13已知某數(shù)(N=8)的補(bǔ)碼為:(01110110)2
求其原碼和它對(duì)應(yīng)的十進(jìn)制數(shù)。解:這是一個(gè)8位二進(jìn)制數(shù),最高位為符號(hào)位,符號(hào)位為0,表示該數(shù)是一個(gè)正數(shù),根據(jù)規(guī)則,正數(shù)的補(bǔ)碼,其原碼等于補(bǔ)碼本身,故得出其原碼為:這個(gè)二進(jìn)制數(shù)其對(duì)應(yīng)的十進(jìn)制數(shù)為:+11801110110例題2.14已知某數(shù)(N=8)的補(bǔ)碼為:(10010101)2
求其原碼和它對(duì)應(yīng)的十進(jìn)制數(shù)。解:這是一個(gè)8位二進(jìn)制數(shù),最高位符號(hào)位為1,表示該數(shù)是一個(gè)負(fù)數(shù)。根據(jù)規(guī)則,負(fù)數(shù)的補(bǔ)碼,其原碼為除開(kāi)符號(hào)位以外將補(bǔ)碼的數(shù)值位按位求反后在末位加1。故得出其原碼為:這個(gè)二進(jìn)制數(shù)其對(duì)應(yīng)的十進(jìn)制數(shù)為:-107。例題2.15在采用8位二進(jìn)制(N=8)和16位二進(jìn)制數(shù)(N=16)時(shí),請(qǐng)分別求(-21)10
的原碼、反碼、補(bǔ)碼。同時(shí)寫(xiě)出相應(yīng)的十六進(jìn)制原碼、反碼、補(bǔ)碼。。解:(1)計(jì)算機(jī)采用8位二進(jìn)制(N=8)時(shí)。首先把十進(jìn)制真值(-21)10
轉(zhuǎn)換成二進(jìn)制真值:(-21)10=(-10101)2。求原碼:用8位二進(jìn)制數(shù)(N=8)來(lái)表示它的原碼如下(最高位為符號(hào)位):采用十六進(jìn)制表示為:95H1110101110010101求反碼:由于該數(shù)值為負(fù)數(shù),根據(jù)反碼規(guī)則,負(fù)數(shù)的反碼為其原碼除開(kāi)符號(hào)位以外的各位按位取反。故得出(-21)10的反碼如下:采用十六進(jìn)制表示為:EAH求補(bǔ)碼:由于該數(shù)值為負(fù)數(shù),根據(jù)補(bǔ)碼規(guī)則,負(fù)數(shù)的補(bǔ)碼為其反碼加1。故得出(-21)10的補(bǔ)碼如下:采用十六進(jìn)制表示為:EBH(2)計(jì)算機(jī)采用16位二進(jìn)制(N=16)時(shí)。求原碼:用16位二進(jìn)制數(shù)(N=16)來(lái)表示(-21)10的原碼如下(最高位為符號(hào)位):
采用十六進(jìn)制表示為:8015H11101010111010111000000000010101求反碼:用16位二進(jìn)制數(shù)(N=16)來(lái)表示(-21)10的反碼如下(最高位為符號(hào)位):
采用十六進(jìn)制表示為:FFEAH求補(bǔ)碼:用16位二進(jìn)制數(shù)(N=16)來(lái)表示(-21)10的補(bǔ)碼如下(最高位為符號(hào)位):采用十六進(jìn)制表示為:FFEAH例題2.16已知兩個(gè)十六進(jìn)制數(shù)5CH、A7H,如果用8位二進(jìn)制(N=8)表示,請(qǐng)問(wèn)它們分別看成無(wú)符號(hào)數(shù)時(shí)、有符號(hào)數(shù)原碼、補(bǔ)碼時(shí)對(duì)應(yīng)的十進(jìn)制數(shù)是多少?解:(1)第一個(gè)十六進(jìn)制數(shù)5CH首先把十六進(jìn)制數(shù)5CH轉(zhuǎn)換成二進(jìn)制:5CH=(01011100)2當(dāng)5CH表示為無(wú)符號(hào)數(shù):由于是無(wú)符號(hào)數(shù),所以每一位二進(jìn)制都是數(shù)值位,故直接把8位二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)即可:5CH=(01011100)2=(92)1011111111111010101111111111101011當(dāng)5CH表示為有符號(hào)數(shù)原碼:最高位符號(hào)位為0,所以這是個(gè)正數(shù),故直接把余下7位二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)即可:5CH=(01011100)2=(+92)10當(dāng)5CH表示為有符號(hào)數(shù)補(bǔ)碼:最高位符號(hào)位為0,所以這是個(gè)正數(shù),故直接把余下7位二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)即可:5CH=(01011100)2=(+92)10(2)第二個(gè)十六進(jìn)制數(shù)A7H首先把十六進(jìn)制數(shù)A7H轉(zhuǎn)換成二進(jìn)制:A7H=(10100111)2當(dāng)A7H表示為無(wú)符號(hào)數(shù):由于是無(wú)符號(hào)數(shù),所以每一位二進(jìn)制都是數(shù)值位,故直接把8位二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)即可:A7H=(10100111)2=(167)10當(dāng)A7H表示為有符號(hào)數(shù)原碼:最高位符號(hào)位為1,所以這是個(gè)負(fù)數(shù),余下的7位二進(jìn)制數(shù)值位代表的十進(jìn)制數(shù)值為:39。A7H=(10100111)2=(-39)10當(dāng)A7H表示為有符號(hào)數(shù)補(bǔ)碼:最高位符號(hào)位為1,所以這是個(gè)負(fù)數(shù),根據(jù)已知負(fù)數(shù)的補(bǔ)碼求原碼的規(guī)則:把A7H轉(zhuǎn)換為原碼后為:(11011001)2=(-89)102.3非數(shù)值型數(shù)據(jù)的表示方法2.3.1美國(guó)標(biāo)準(zhǔn)信息交換碼在初學(xué)ASCII碼時(shí)需要注意兩點(diǎn):(1)標(biāo)準(zhǔn)ASCII碼使用7位二進(jìn)制數(shù)來(lái)表示西文字符,但是由于計(jì)算機(jī)中都以字節(jié)為單位存儲(chǔ)數(shù)據(jù),所以,輸入到計(jì)算機(jī)中的標(biāo)準(zhǔn)ASCII編碼實(shí)際上是8位二進(jìn)制數(shù)(1個(gè)字節(jié)),最高位補(bǔ)一個(gè)0。(2)在介紹某個(gè)字符的ASCII碼時(shí),我們有時(shí)使用十進(jìn)制,有時(shí)使用二進(jìn)制,有時(shí)候又使用十六進(jìn)制。
比如,字母“A”的ASCII碼可以寫(xiě)成:65(十進(jìn)制表示),41H(十六進(jìn)制表示),01000001(二進(jìn)制表示)三種表示形式,但真正輸入到計(jì)算機(jī)中存儲(chǔ)和處理的是二進(jìn)制編碼。十進(jìn)制描述是因?yàn)槠綍r(shí)生活中我們習(xí)慣于十進(jìn)制;十六進(jìn)制描述是為了書(shū)寫(xiě)方便。一個(gè)字符的ASCII碼有三種表示形式只是運(yùn)用的場(chǎng)合不同,其本質(zhì)都是一樣的。2.3.2漢字編碼計(jì)算機(jī)中漢字的表示也是采用二進(jìn)制編碼,同樣也是人為編碼。
1.外碼(輸入碼)外碼也叫輸入碼,是用來(lái)將漢字輸入到計(jì)算機(jī)中的一組鍵盤(pán)符號(hào),不同的漢字輸入法就有不同的漢字輸入碼。常用的輸入碼有:拼音碼、五筆字型碼、自然碼、表形碼、區(qū)位碼和電報(bào)碼等。2.交換碼(國(guó)標(biāo)碼)每一個(gè)漢字都有了確定的二進(jìn)制代碼,中國(guó)標(biāo)準(zhǔn)總局1981年制定了中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn)GB2312-80《信息交換用漢字編碼字符集--基本集》,即國(guó)標(biāo)碼。國(guó)標(biāo)碼規(guī)定:每個(gè)字符的二進(jìn)制編碼占有2個(gè)字節(jié),每個(gè)字節(jié)的最高位為0,每個(gè)字符對(duì)應(yīng)一個(gè)編碼。它共包括6763個(gè)常用漢字(其中一級(jí)漢字3755個(gè),二級(jí)漢字3008個(gè)),英、俄、日文字母及其符號(hào)共687個(gè)。3.機(jī)內(nèi)碼“大”這個(gè)漢字的國(guó)標(biāo)碼是(0011010001110011)2,但是真正輸入到計(jì)算機(jī)中存儲(chǔ)的漢字代碼不是國(guó)標(biāo)碼,而是機(jī)內(nèi)碼。機(jī)內(nèi)碼和國(guó)標(biāo)碼的關(guān)系:機(jī)內(nèi)碼=國(guó)標(biāo)碼+(1000000010000000)2;
如果使用十六進(jìn)制表示則為:機(jī)內(nèi)碼=國(guó)標(biāo)碼+8080H2.4數(shù)的定點(diǎn)表示和浮點(diǎn)表示方法在計(jì)算機(jī)中,小數(shù)點(diǎn)不用專(zhuān)門(mén)的器件來(lái)表示,而是按照約定的方式來(lái)標(biāo)出。共有兩種約定方法表示小數(shù)點(diǎn)的存在,即定點(diǎn)表示和浮點(diǎn)表示。定點(diǎn)表示的數(shù)稱(chēng)為定點(diǎn)數(shù),浮點(diǎn)表示的數(shù)稱(chēng)為浮點(diǎn)數(shù)。2.4.1數(shù)的定點(diǎn)表示我們約定好小數(shù)點(diǎn)在某一個(gè)位置不動(dòng),以后所有的數(shù)小數(shù)點(diǎn)都按照這個(gè)位置來(lái)計(jì)算。從理論上而言,小數(shù)點(diǎn)可以約定在任何位置,只要計(jì)算機(jī)中所有的數(shù)都按照這個(gè)約定,一樣都可以計(jì)算。這種采用小數(shù)點(diǎn)固定的“定點(diǎn)數(shù)”計(jì)算機(jī)被稱(chēng)為定點(diǎn)計(jì)算機(jī)。下面我們介紹兩種特別格式的定點(diǎn)數(shù):定點(diǎn)整數(shù)和定點(diǎn)小數(shù)。
1.定點(diǎn)整數(shù)定點(diǎn)整數(shù)的格式如下:Sf:表示數(shù)的符號(hào)位。S1S2S3S4……Sn:表示數(shù)值部分。小數(shù)點(diǎn)約定在Sn后,這樣這個(gè)數(shù)就實(shí)際上就只有整數(shù)部分,也就是純整數(shù),我們稱(chēng)之為定點(diǎn)整數(shù)。2.定點(diǎn)小數(shù)定點(diǎn)小數(shù)的格式如下:Sf:表示數(shù)的符號(hào)位。S1S2S3S4……Sn:表示數(shù)值部分。小數(shù)點(diǎn)約定在Sf后,這個(gè)數(shù)就實(shí)際上就只有小數(shù)部分,整數(shù)部分的零,我們采用默認(rèn),不再占1位二進(jìn)制數(shù),這樣這個(gè)數(shù)就是一個(gè)純小數(shù),我們稱(chēng)之為定點(diǎn)小數(shù)。SfS1S2S3S4…………Sn2.4.2數(shù)的浮點(diǎn)表示所謂“浮點(diǎn)數(shù)”是指小數(shù)點(diǎn)的位置可以浮動(dòng)的數(shù)。例如一個(gè)十進(jìn)制數(shù):35.26=3.526×101=0.3526×102=0.03526×103結(jié)論:任何一個(gè)十進(jìn)制數(shù)N都可以表示成一個(gè)純小數(shù)和10的某次冪的乘積。同樣,一個(gè)二進(jìn)制數(shù):
11.0101=1.10101×21=0.110101×210=0.0110101×211結(jié)論:任何一個(gè)二進(jìn)制數(shù)N都可以表示成一個(gè)純小數(shù)和2的某次冪的乘積。通常,計(jì)算機(jī)中的浮點(diǎn)數(shù)用數(shù)學(xué)表達(dá)式來(lái)表示:N=S×Rj。式中,S稱(chēng)為尾數(shù)(可以為正可以負(fù)),R稱(chēng)為的基數(shù),j稱(chēng)為階碼(可以為正可以為負(fù))。計(jì)算機(jī)采用二進(jìn)制,所以基數(shù)R=2是不變的,如果知道了尾數(shù)S和階碼j,就可以確定這個(gè)數(shù)的值。結(jié)論:任何一個(gè)二進(jìn)制數(shù)都可以用尾數(shù)和階碼的形式來(lái)表示,稱(chēng)為二進(jìn)制數(shù)的浮點(diǎn)數(shù)表示形式。1.浮點(diǎn)數(shù)的表示形式計(jì)算機(jī)中浮點(diǎn)數(shù)的格式:計(jì)算機(jī)中規(guī)定:浮點(diǎn)數(shù)由階碼j和尾數(shù)S兩部份組成。階碼部分放在前面采用定點(diǎn)整數(shù),共m+1位;尾數(shù)部分放在后面采用定點(diǎn)小數(shù),共n+1位。jfj1j
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《海岸風(fēng)光模板》課件
- 水準(zhǔn)測(cè)量外業(yè)工作要點(diǎn)
- 贛南醫(yī)學(xué)院《生物化學(xué)與分子生物學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 勞動(dòng)防護(hù)用品培訓(xùn)課件
- 身體解剖培訓(xùn)課件
- 2022年上海統(tǒng)計(jì)師(中級(jí))《統(tǒng)計(jì)基礎(chǔ)理論及相關(guān)知識(shí)》考試題庫(kù)及答案
- 甘孜職業(yè)學(xué)院《園林工程實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 三年級(jí)數(shù)學(xué)上冊(cè)1時(shí)分秒單元概述和課時(shí)安排素材新人教版
- 三年級(jí)數(shù)學(xué)上冊(cè)第三單元測(cè)量第4課時(shí)千米的認(rèn)識(shí)教案新人教版
- 小學(xué)生校園安全教育制度
- 德語(yǔ)語(yǔ)言學(xué)導(dǎo)論智慧樹(shù)知到期末考試答案2024年
- 拒絕早戀主題班會(huì) 課件(34張)2023-2024學(xué)年主題班會(huì)
- 離婚協(xié)議書(shū)完整版Word模板下載
- 招標(biāo)代理機(jī)構(gòu)內(nèi)部監(jiān)督管理制度
- 初中周末安全教育課件
- 2024年度醫(yī)院骨肌肉康復(fù)科醫(yī)務(wù)人員述職報(bào)告課件
- 小學(xué)四年級(jí)綜合實(shí)踐活動(dòng)《羊毛氈化制作》教學(xué)公開(kāi)課課件
- 工藝工程師述職報(bào)告
- 2024北京西城區(qū)初二(上)期末英語(yǔ)試卷及答案
- 小學(xué)生思維漫畫(huà)合輯
- 智能醫(yī)療在泌尿外科手術(shù)中的數(shù)字導(dǎo)航
評(píng)論
0/150
提交評(píng)論