边玩边学二进制(续)

2015-09-15 03:51陈凯
中国信息技术教育 2015年17期
关键词:电子元件二进制管子

陈凯

为什么当前的计算机主要使用二进制处理信息呢?这个问题当然难不倒大家,因为电子元件处理二进制数据比较容易,“0”和“1”代表两个完全不一样的物理状态,存储和识别比较容易,转换起来方便快捷。虽然问题回答起来并不难,不过通过文字了解是一回事,亲身体验领悟又是另一回事,由于在课堂上很难直观地观察到电子元件处理数据的过程,所以不妨通过游戏让学习者真切地体验到二进制的优势。

● 用Flappy Bird传输数据

提起Flappy Bird很多人都知道,网络上有不少网友自编的模仿Flappy Bird游戏的源代码,稍加改造就可以作为教学工具。限于篇幅这里不给出完整的代码,大家可自行上网搜索。

改造后的游戏是这样的:小鸟所通过的每列障碍由7个管子和1个空档组成,空档在哪里并不是随机的,如要传递八进制的数据“325”,就需要在第3个、第2个及第5个管子后开出空档,若小鸟顺利通过全部的三个空档而没有撞到管子,就表示顺利传递了“325”这个数据。只要是认真玩过Flappy Bird的人,就知道完成这个任务是非常困难的(如图1)。

图1

为了更方便地传递数据,可以把八进制的“325”转换成二进制“11010101”,虽然“325”里只有3个符号,而“11010101”里有8个符号,但因为物理状态只有两种,所以小鸟通过管道的腾挪空间可以大幅度增加。小鸟需要通过障碍的数量增加了,但游戏难度反而大大降低(如图2)。

图2

通过这个游戏就可以看出,在有限的信息处理空间中,使用二进制有助于保证数据传输的稳定性。

● 用游戏棋做二进制运算

假设有3个二进制数,分别是“101”

“1111”和“1001”,用棋子(或积木)代表1,空档代表0,将这3个二进制数分三行摆好(如图3)。

图3

游戏规则非常简单:每个棋子都可以向上移动,一次只能移动一颗棋子,但不能往其他方向移;如棋子移动时遇到另一个棋子,则可以将阻挡它移动的棋子吃掉,吃掉阻挡物后,当前棋子再向左移动一格。当所有棋子处于同一行时,游戏结束(如图4)。

然后根据这个规则,对初始的图形进行变化,先移动哪个棋子后移动哪个棋子其实无所谓,最后结果总是一样的(如下页图5)。

在图5的例子中,最后的结果是“11101”,其实,把“101”“1111”和“1001”3个二进制数加起来,得到的正是“11101”。这个游戏说明,只要使用很简单的规则,就可以实现针对二进制数的数学运算。稍微改一下规则,还能做二进制减法,大家能想出做减法的规则应当如何制定吗?

猜你喜欢
电子元件二进制管子
巧取乒乓球
销售额仍保持高速增长 研发投入再创新高
2020年(第33届)中国电子元件百强企业名单
有用的二进制
用Scratch把十进制转为二进制
有趣的进度
MLCC表现亮眼授权专利量空前增长
做试验
EL转向骑行手套
滚球游戏