“信息技術基礎”是高中信息技術課程的必修部分,其中信息的編碼這課要求學生能夠熟練掌握二進制與十進制數的相互轉換,在信息技術高考中被列為Ⅱ級要求,即對所列知識要理解其確切含義及與其它知識的聯系,能夠用所學的信息技術知識和操作方法解決實際問題,熟練應用信息技術進行信息的處理。
本人在實際教學中概括出了一套能準確、快速轉換二進制與十進制數的方法。現將相關原理和轉換技巧陳述如下。
● 基本概念
數制是用一組固定的數字和一套統一的規則來表示數目的方法。按照進位方式計數的數制叫做進位計數制。進位計數制的兩個要素:基數和權值。
基數:它是指各種進位計數制中允許選用基本數碼的個數。
權值:每個數碼所表示的數值等于該數碼乘以一個與數碼所在位置相關的常數,這個常數叫做權值。其大小是以基數為底、數碼所在位置的序號為指數的整數次冪。
二進制和十進制的基數、數碼、進位關系可以用表1來表示。
● 二進制轉換成十進制
二進制數位權是以2為底的冪。例如,二進制數110.11,其權的大小順序為22、21、20、2-1、2-2。對于有n位整數,m位小數的二進制數用加權系數展開式表示,可寫為:
(N)2=an-1×2n-1+an-2×2n-2+……+a1×21+a0×20+a-1×2-1+a-2×2-2
這就是二進制轉換成十進制的普通算法——按權展開相加法。
例如,(1111101)2=( )10這樣的題目,根據按權展開相加法,可以陳列如下:(1111101)2=1×26+1×25+1×24+1×23+1×22+0×21+1×20=64+32+16+4+0+1=117,
不過這樣做計算量很大,比較容易出錯,而且浪費時間。高考對時間和準確性要求非常高,而且不能使用任何有關的電子設備或是計算類工具,我們最好想出辦法化繁為簡、提高準確率。
由表2可見,位權的值構成的是等比數列。根據等比數列的求和公式Sn=a1(1-q^n)/(1-q),第一項a1=1,公比q=2,求得二進制中特有的求和公式Sn=2^n-1,我們驚奇的發現這個公式就是當二進制數碼全部為1情況下的累積權值,也就是二進制數轉換成的十進制數。
當二進制的數碼中有0時,用累計權值減去0位上的權值即可,這樣就得到公式:
Sn=(2^n-1)-2^a-2^b-2^c……
(注:Sn為十進制數,n為總的位數,a、b、c……為0位上相應的位序)
這樣計算二進制轉十進制,方便快捷了很多,而且大大提高了準確率。
比如,(1111110)2=( )10一題,普通做法是(1111110)2=1×2^6+1×2^5+1×2^4+1×2^3+1×2^2+1×2^1+0×2^0=64+32+16+8+4+2+0=126。
采用公式的方法是,首先數清總的二進制位數,此題為7位,再找到數碼為0的位序,此題為第0位,最后的計算過程為 (2^7-1)-2^0=(128-1)-1=126。
當然,在0絕對多的情況下,采用公式的方法計算會比較麻煩,我們可以根據按權展開相加法,省去計算0位上權值的步驟,將1位上權值相加即可。
● 十進制轉換成二進制
十進制數轉換成二進制數通常使用的是除二取余法,如把6轉換成二進制數是110,過程可以用下圖表示。
考試時我們畫這樣的連除圖有點浪費時間,現在我們嘗試換一種思路,從權值出發,找到相應的位權,逐步推導,將十進制數快速轉換成二進制數。
因為二進制數是由數碼與位權的值相乘后累積的和,又因為任何數與0相乘的積都為0,所以我們把二進制數轉換十進制數時,只要把1位上的權值相加即可。反之,在十進制數轉二進制數時,我們可以逆向思維,首先找到等于或小于且最接近該十進制數的權值,確定數碼為1的最高位數;然后把十進制數與確定的最高位的權值相減,得到差值,再找到與差值相等或比差值小且與之最接近的權值,確定第二個數碼為1的位數,依次類推,最后在空位填上0。
比如,我們將6轉換成二進制數,首先找到與6相等或小于6且與6最接近的權值,根據表2我們可以確定是4,以此我們可以判定此二進制數是3位二進制數——1**;又因為6-4=2,我們再找到與2相等或比2小且最接近2的權值,根據表2我們可以確定是2,以此我們可以判定此二進制數的第1位也為1,其它位數為0,所以馬上可以推斷此二進制數是(110)2。
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”