星期二下午的數學興趣小組活動中,我在黑板上畫了4個圖,每個圖中都有8個數字,如圖1.
同學們都很納悶,不知道這幾個圖有什么用.
這時,我說:“我們先來做一個猜數字的游戲.”
同學們一聽要做游戲,就來勁兒了,教室里立刻響起一片掌聲.
我接著說:“同學們,你們先想好1~15中的一個整數,然后告訴我都哪幾個圖上顯示了這個數字,我就能說出這個數字是幾.”
王浩同學首先發言:“我想好的數字在(1)(2)(3)中都有,在(4)中沒有.”
我很快報出:“你想的數字是14.”
王浩吃驚地答道:“是的.”
接著,陳亮同學發言:“我想好的數字在(2)(3)中有,在(1)(4)中沒有.”
我又準確地說出:“你想的數字是6.”陳亮點頭表示正確.
又有幾位同學發言,我都準確無誤地說出了他們想的數字.
大家都感到驚奇,只有班上的“數學王子”劉濤一直沒有說話,這時他舉起了手,說:“我看這個游戲并沒有什么新奇的地方,只要仔細按要求找一下就可以確定所想的數了.而且,因為每個圖只有“有”和“無”兩種狀態,所以共有2×2×2×2=16種‘有無’情況,去掉‘無無無無’的情況,共有15種‘有無’情況.而這里的15個數字正好對應于15種‘有無’情況,如14對應于‘有有有無’,6對應于‘無有有無’.”教室里又響起了掌聲.
這時,楊明說:“可是我看李老師并沒有找,而且找起來也比較慢.”
“老師,您該不是把這15種對應關系全記住了吧?”王浩笑著問道.
我見大家討論得差不多了,就笑著說:“同學們的積極性都很高,開動了腦筋,發現了其中隱含的規律.不過我不是用‘記’的方法,而是用‘算’的方法.同學們,你們知道是怎么算的嗎?”
教室里靜了下來,有的同學已經開始用筆算了起來.
過了一會兒,陳亮舉起了手,高興地說:“我知道了!只要把所有包含所想數字的圖中的第一個數字相加就可以得到這個數!”
大家都趕緊嘗試,很快都報以熱烈的掌聲.
緊接著,我開始講課了.
其實,我們今天做的游戲與二進制有關.我們通常用的數字是十進制的,也就是說逢十進一.任何一個十進制的整數,總可以寫成a0×10n+a1×10n-1+…+an - 1×101+an的形式.如2 008=2×103+ 0×102+ 0×101+ 8.我們稱10是十進制記數法的基數.
計算機通常用的是二進制數,這是因為計算機的計算和記憶元件只有兩種不同的狀態,如“開”、“關”.二進制是逢二進一的,只有0、1兩個數碼.任何一個二進制的整數,都可以表示成a0×2n+a1×2n - 1+…+an - 1×21+an的形式.如二進制數1010=1×23+0×22+1×21+ 0.我們稱2是二進制記數法的基數.
為了與其他進位制相區別,常常將基數2寫在右下角,如10102,十進制的基數10一般不寫.二進制數化為十進制數比較容易,如把10102化為十進制數,只要把1×23+0×22+1×21+0算一下就可以了,10102=8+2=10.那么,如何把十進制數轉化為二進制數呢?
可以逆向思考,先把十進制數化為a0×2n+a1×2n - 1+…+an - 1×21+an的形式,再寫出這個二進制數.例如,我們來看一道中考題.
題目:計算機采用的是二進制數,它共有兩個數碼0、1.將一個十進制數轉化為二進制數,只需把該數寫成若干個2n數的和,依次寫出1或0即可,如19=16+2+1=1×24+0×23+0×22+1×21+1×20=100112,它是二進制下的5位數,則十進制數2 004是二進制下的().
A. 10位數B. 11位數
C. 12位數D. 13位數
這道題首先舉例說明了十進制數轉化為二進制數的方法,然后讓我們加以應用.考慮不大于2 004且最接近于2 004的2的乘方是210,所以它是二進制下的11位數,應選B.
下面我們把1~15之間的整數都轉化為二進制數,如表1(不足4位的,在前面補0).
我們再來看看前面的圖中的數字.凡是轉化成二進制數以后,首位為1的,都記入圖1(1)中;第二位為1的,都記入圖1(2)中;第三位為1的,都記入圖1(3)中;末位為1的,都記入圖1(4)中.當王浩同學說在(1)(2)(3)中都有,在(4)中沒有時,就對應著二進制數1110,化為十進制,就是1×23+1×22+1×21+0=8+4+2+0=14,也相當于陳亮所說的把顯示所想數字的圖中的第一個數字相加.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文