通過握拳和逐個伸出手指,人們能夠用一只手表達0到5這六個數字符號,但如何表達6、7、8和9呢?古代中國人創造出一套非常聰明且流傳至今的手勢系統,能夠僅用一只手清晰地表達數字符號6到9,如僅伸出大拇指和小指代表6(在許多西方國家這個手勢表示打電話),彎曲食指代表9等。這樣,兩只手協作就能以十進制的方式表達從O到99之間的所有數字。
怎樣進一步開拓用手指表達數字的潛能呢?假設用伸直的手指代表二進制1,蜷起的手指代表二進制0,預設小指為最低位,大拇指為最高位,顯然一只手就能表達O到31之間所有的數字,兩只手協作則可以從0一直計數到1023。例如,用手勢可以表示二進制數10001,相當于十進制數17;更重要的是,還可以用兩只手來協作進行“掐指神算”——只要按秘訣動動手指,計算題的答案就自動“顯示”出來了,看上去頗有些諸葛軍師的風范。下面由易至難列出一系列指間的“計算機運動”,相信從手指的運動聯系到計算機二進制,一定能激發你的潛能。
熱身運動:傳統二進制計數法
對二進制有所了解的朋友應該很容易完成以下運動:用一只手上的五個手指從二進制數00000連續計數到11111(即十進制中的31),最可能遇到的困難恐怕不是計數而是如何控制無名指的伸直和蜷起,不過既然還能依靠另一只手的扶持,這也就不算是什么問題了。
班級友誼賽項目:傳統二進制加法
兩只手分別賦予不同的數字,兩手手指相對就能做加法了,不過加法的結果最好是存回其中一只手上,否則的話,會給手指“寄存器”的分配帶來很大的困難。
以加法結果存儲于左手為例,秘訣就是;若左手的手指蜷起而恰對右手的手指伸直,則此兩指狀態互換,若兩手的手指均伸直,則此兩指均蜷起,同時將右手高一位的鄰近手指伸直,重復以上過程直到右手手指均蜷起。有趣的是,最好不要按傳統十進制筆算那樣從低位算到高位,而是應該從高位算到低位,只要實際計算幾次加法,就能明白為什么會這樣了。
學校錦標賽項目:循環二進制計數法
傳統二進制計數法的問題是,每計數一次,涉及需要變化的手指可能不止一個,如從01011計數增一變動至01100,大拇指和食指不動,而中指、無名指和小指全都要變動。有什么辦法可以從0到31連續計數,每次增一只需一個手指的變動,并找出其中的變化規律呢?
這個任務所對應的現實科技問題就是,如果一個數字電路模塊的功能僅僅是計數,那么若按傳統二進制計數法設計電路,就會引入不必要的復雜性。于是,人們創造出一套循環計數編碼表,其相鄰數值的二進制數碼中有且僅有一位是不同的。例如,可以用00001來代表十進制數1,接下來可以用00010來代表十進制數2(僅有第2位不同),接下來最好是用0001 l代表十進制數3(盡管直接用00111代表十進制數3也符合只變一位的規定,但如此就很難找出后續規律計滿O到31所有32個數字了)。開始幾步看似容易,但若找不出秘訣,恐怕是要越變越頭暈