陳凱
大家知道二進制00、01、10、11分別對應(yīng)著十進制的0、1、2、3,若有一個設(shè)備,輸入的是二進制數(shù)碼,而輸出的是十進制數(shù)碼,傳統(tǒng)上則將其稱為二進制解碼器,也稱譯碼器。如輸入的是兩個二進制數(shù)碼,則可以對應(yīng)四個十進制數(shù),稱為2線-4線解碼器;如輸入的是三個二進制數(shù)碼,則可以對應(yīng)八個十進制數(shù),稱為3線-8線解碼器。解碼器很容易制作,甚至只用紙和剪刀就做得出來。
● 紙牌解碼器
先從一個紙牌游戲開始,取撲克牌若干,正面朝上代表數(shù)碼1,背面朝上代表數(shù)碼0,如果將要解碼的二進制數(shù)字是“10”,則將撲克牌以正面朝上和背面朝上兩兩搭配為一組,并將這個模式重復(fù)四次,也就是“正反正反正反正反”八張牌。然后背誦“咒語”——翻翻翻留留翻留留,其中“翻”代表把牌翻個面,“留”代表不翻面。前兩張牌稱為第零組,次兩張牌稱為第一組,再次兩張為第二組,最后兩張為第三組。翻牌前初始狀態(tài)如圖1所示。
根據(jù)“咒語”翻面后,就成了圖2所示的狀態(tài)。
可以看出,第零組是一背一正,第一組全是背面,第二組全是正面,第三組是一正一背。全是正面的那一組是第二組,而二進制數(shù)“10”所對應(yīng)的十進制數(shù)恰好就是2。
再舉一個例子,二進制數(shù)“11”可用兩張朝上的牌來代表,先將這個模式重復(fù)四次(如圖3)。
然后根據(jù)“翻翻翻留留翻留留”的“咒語”翻牌,得到圖4所示的狀態(tài)。
可見解碼后的數(shù)字是3,因為只有第三組兩張都是正面。其余的情況,大家可以自己試一下。
● 紙板解碼器
根據(jù)以上原理再進一步,可以設(shè)計出更精巧的紙板解碼器(如上頁圖5)。
按圖樣剪兩張紙板,兩邊伸出兩個“小耳朵”,“小耳朵”一面寫“0”,翻過來另一面寫“1”。另外,再剪一張矩形紙板作為底板,標(biāo)上“0”“1”“2”“3”四個十進制數(shù)字作為輸出。然后將有“小耳朵”的兩張紙板疊在底板上,露出的缺口恰好可以顯示一個十進制數(shù)(如上頁圖6)。
兩張都是正面,疊在一起則表示輸入為“00”,輸出為“0”。上頁圖7分別是“01”得“1”、“10”得“2”和“11”得“3”的情況。
這樣,紙板解碼器便大功告成,雖然制作簡單,但有明確的輸入端和輸出端,而且還仿佛具有自動運算的功能。