海南軟件職業(yè)技術(shù)學(xué)院 王 晶
計(jì)算機(jī)教學(xué)中的進(jìn)制轉(zhuǎn)換方法解析與應(yīng)用
海南軟件職業(yè)技術(shù)學(xué)院 王 晶
進(jìn)制在計(jì)算機(jī)課程教學(xué)中是一個(gè)非常重要的概念,初學(xué)者在學(xué)習(xí)時(shí)通常對(duì)進(jìn)制的概念理解不深入,同時(shí)不能熟練的進(jìn)行不同進(jìn)制數(shù)的轉(zhuǎn)換,本文主要對(duì)二進(jìn)制數(shù)與十進(jìn)制數(shù)互換提供了幾種不同的計(jì)算方法,以便于學(xué)生在學(xué)習(xí)和各種考試中能夠快速的計(jì)算出結(jié)果。
進(jìn)制 轉(zhuǎn)換 二進(jìn)制 十進(jìn)制 方法
在當(dāng)今互聯(lián)網(wǎng)時(shí)代背景下,人們每天不斷的和各種信息進(jìn)行互通和交流,信息拉近了人與人之間的距離并且也連通了整個(gè)世界。而這些信息可以概括為數(shù)據(jù)、文字、聲音、圖形和圖像幾種不同的形式。對(duì)于計(jì)算機(jī)來(lái)說(shuō),這些信息卻都是以二進(jìn)制數(shù)進(jìn)行存儲(chǔ)的。另外,在表示計(jì)算機(jī)內(nèi)存地址時(shí)經(jīng)常用到八進(jìn)制數(shù)和十六進(jìn)制數(shù)。但人們習(xí)慣使用十進(jìn)制數(shù),對(duì)其它制數(shù)并不熟悉,因此不同進(jìn)制數(shù)之間的轉(zhuǎn)換就顯得至關(guān)重要,尤其是二進(jìn)制數(shù)與十進(jìn)制數(shù)之間的轉(zhuǎn)換方法在計(jì)算機(jī)教學(xué)中作為重點(diǎn)。
進(jìn)制是“進(jìn)位計(jì)數(shù)制”的簡(jiǎn)稱,是用一組固定的符號(hào)來(lái)表示數(shù)值的方法。計(jì)算機(jī)中常用的進(jìn)制是二進(jìn)制、八進(jìn)制、十六進(jìn)制和十進(jìn)制數(shù)。其中,在各個(gè)進(jìn)制中使用的不同符號(hào)的個(gè)數(shù)為基,進(jìn)制中每一位所具有的值為位權(quán)。對(duì)于不同的進(jìn)制數(shù)記作R進(jìn)制,則基為R,位權(quán)是以為R底的冪。計(jì)算的規(guī)則是逢R進(jìn)一,借一當(dāng)R。需要注意的是二進(jìn)制數(shù)使用“0”和“1”兩個(gè)符號(hào)來(lái)表示,八進(jìn)制數(shù)使用“0、1、2、3、4、5、6、7”共八個(gè)符號(hào)來(lái)表示,而十六進(jìn)制數(shù)使用“0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F”這十六個(gè)符號(hào)來(lái)表示。任何一個(gè)數(shù)值都可以使用不同的進(jìn)制來(lái)表示,如十進(jìn)制數(shù)20,二進(jìn)制數(shù)表示為10100,八進(jìn)制數(shù)為24,十六進(jìn)制數(shù)為14,這四種進(jìn)制數(shù)只是表示形式和使用場(chǎng)合不同,而數(shù)值大小是一樣的。
2.1按權(quán)展開(kāi)法
將要轉(zhuǎn)換的二進(jìn)制數(shù)從高位到低位按權(quán)展開(kāi)進(jìn)行多項(xiàng)式的求和。
該方法的優(yōu)點(diǎn)是容易理解,缺點(diǎn)是如果二進(jìn)制數(shù)位數(shù)過(guò)多會(huì)導(dǎo)致展開(kāi)的多項(xiàng)式較長(zhǎng)。
例如將二進(jìn)制數(shù)1011.0101轉(zhuǎn)換為十進(jìn)制數(shù)。
(1011.0101)2=(1×23+0×22+1×21+1×20+0×2-1+1×2-2+0×2-3+1×2-4)10=(8+2+1+0.25+0.0625)10=(11.3125)10
2.2權(quán)值求和法
該方法通過(guò)2.1演變而來(lái),需要?jiǎng)?chuàng)建一個(gè)權(quán)值查詢表。假設(shè)要轉(zhuǎn)換的二進(jìn)制整數(shù)位為8位,小數(shù)位為4位,將每一位的權(quán)值計(jì)算出得到等比數(shù)列128、64、32、16、8、4、2、1、0.5、0.25、0.125、0.0625(該數(shù)列可根據(jù)整數(shù)和小數(shù)位數(shù)可靈活增減)記錄在表1中,然后按以下兩個(gè)步驟即可得出結(jié)果。
步驟1:將要轉(zhuǎn)換的二進(jìn)制數(shù)的每一位和權(quán)值查詢表中的位相對(duì)應(yīng);
步驟2:將二進(jìn)制為“1”的權(quán)值進(jìn)行相加求和。
該方法的優(yōu)點(diǎn)是省去按權(quán)展開(kāi)的麻煩,能夠提升計(jì)算速度,缺點(diǎn)是需要牢記以上提到的數(shù)列。
二進(jìn)制數(shù)1011.0101與權(quán)值查詢表的對(duì)應(yīng)關(guān)系如表2所示。
(1011.0101)2=(8+2+1+0.25+0.0625)10=(11.3125)10十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)。
3.1除2取余乘2取整法
整數(shù):除2取余法。即使用該十進(jìn)制數(shù)依次除以2取余數(shù)(必定為0或1),直至商為0停止運(yùn)算,得出的余數(shù)由下向上寫(xiě)出即為十進(jìn)制整數(shù)部分的二進(jìn)制數(shù)。
小數(shù):乘2取整法。即使用該十進(jìn)制數(shù)乘以2,取得積的整數(shù)部分(必定為0或1),用剩余的小數(shù)繼續(xù)乘以2取得積的整數(shù)部分,直到積為0.0停止運(yùn)算,最先取到的整數(shù)為小數(shù)的高位,以此類推,得到十進(jìn)制小數(shù)的二進(jìn)制數(shù)。如果進(jìn)行多次乘法后積都不為0.0,需要按所需精度進(jìn)行舍入處理。
例如將十進(jìn)制數(shù)156.6875轉(zhuǎn)換成二進(jìn)制數(shù)。
將整數(shù)156和小數(shù)0.6875轉(zhuǎn)換分別為二進(jìn)制數(shù)過(guò)程如下:
將整數(shù)和小數(shù)合并得出(156.6875)10=(10011100.1011)2。
該方法的優(yōu)點(diǎn)是容易理解,缺點(diǎn)是整數(shù)和小數(shù)要使用不同的計(jì)算方法而且過(guò)程相當(dāng)繁瑣。
3.2權(quán)值循環(huán)分解法
步驟1:從表1最左邊的數(shù)據(jù)(首次為128,否則為查找之后的數(shù)據(jù))開(kāi)始進(jìn)行查找,找到第一個(gè)小于當(dāng)前正在判斷的數(shù)據(jù),將十進(jìn)制數(shù)據(jù)寫(xiě)成表中已找到的數(shù)據(jù)與另一個(gè)數(shù)據(jù)之和;
步驟2:判斷步驟1中的另一個(gè)數(shù)據(jù)是否是表1中的數(shù)據(jù),如果是則停止相加運(yùn)算,否則重復(fù)步驟1,直到相加的兩個(gè)數(shù)據(jù)都是表1中的數(shù)據(jù)。
步驟3:找到步驟1和步驟2使用到的全部在表1中的數(shù)據(jù),將其對(duì)應(yīng)的二進(jìn)制位寫(xiě)1,其它位寫(xiě)0;
根據(jù)以上步驟將十進(jìn)制數(shù)156.6875轉(zhuǎn)換成二進(jìn)制數(shù)計(jì)算過(guò)程如下:
表1 權(quán)值查詢表
表2 二—十進(jìn)制權(quán)值對(duì)照表
156=128+28;
28=16+12;
12=8+4(8、4都是表1中的數(shù)據(jù),停止運(yùn)算);
0.6875=0.5+0.1875;
0.1875=0.125+0.0625(0.125、0.0625都是表1中的數(shù)據(jù),停止運(yùn)算);
經(jīng)查表128、16、8、4、0.5、0.125、0.0625對(duì)應(yīng)二進(jìn)制位B7B4B3B2B-1B-3B-4,該二進(jìn)制數(shù)位均為1,其它位為0,即(156.6875)10=(10011100.1011)2。
該方法的優(yōu)點(diǎn)是完全能夠克服3.1中的缺點(diǎn)提高計(jì)算效率,缺點(diǎn)是需要理解并記憶以上3個(gè)步驟。
本文對(duì)二進(jìn)制數(shù)和十進(jìn)制數(shù)的互相轉(zhuǎn)換給出了兩種計(jì)算方法,同時(shí)給出了各自的優(yōu)缺點(diǎn),2.1和3.1作為最基本的方法一般在教材中都有介紹,2.2和3.2在前者的基礎(chǔ)上進(jìn)行了總結(jié)和改進(jìn),而這里最為關(guān)鍵的是要牢記權(quán)值查詢表,反復(fù)練習(xí)后發(fā)現(xiàn)使用2.2和3.2中
提到的方法能夠很大程度提高解題效率,起到事半功倍的效果。
[1] 張鈞良,林雪明.計(jì)算機(jī)組成原理[M].第3版.北京:電子工業(yè)出版社,2010.
[2]馬新文.分析進(jìn)制轉(zhuǎn)換在計(jì)算機(jī)應(yīng)用中的技巧[J].中國(guó)電子商務(wù), 2013(1).
[3]羅少甫,董明.計(jì)算機(jī)應(yīng)用基礎(chǔ)中進(jìn)制轉(zhuǎn)換的教學(xué)方法探討[J].重慶航天職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2015(4).
[4]田祖?zhèn)?,孫光,楊素萍.計(jì)算機(jī)進(jìn)制轉(zhuǎn)換的快速方法及應(yīng)用[J].電腦編程技巧與維護(hù), 2008(17).
[5]石元聆.進(jìn)制轉(zhuǎn)換教學(xué)設(shè)計(jì)[J].計(jì)算機(jī)時(shí)代, 2015(11).
[6]張玉彤.淺析進(jìn)制轉(zhuǎn)換在計(jì)算機(jī)應(yīng)用中的技巧[J].數(shù)字技術(shù)與應(yīng)用,2011(7).
王晶(1984-),女,陜西西安人,碩士學(xué)位,現(xiàn)為海南軟件職業(yè)技術(shù)學(xué)院軟件工程系教師,主要研究方向:軟件開(kāi)發(fā)。