论文部分内容阅读
通过握拳和逐个伸出手指,人们能够用一只手表达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个数字了)。开始几步看似容易,但若找不出秘诀,恐怕是要越变越头晕的。
怎样进一步开拓用手指表达数字的潜能呢?假设用伸直的手指代表二进制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个数字了)。开始几步看似容易,但若找不出秘诀,恐怕是要越变越头晕的。