欢迎大家来到IT世界,在知识的湖畔探索吧!
上周末,给孩子辅导奥数的时候,发现居然有一道二进制题,题目是求两个二进制的和。我的视频课第一课中就介绍了二进制的特点“逢二进一,借一当二”,给孩子讲了下,他还是顺利的做了出来。然后,我又给孩子讲了下十进制与二进制的转换。在讲十进制与二进制转换的时候,我是按照咱们以前学的除二取余法,如下图所示:
这种算法应该说是教科书的算法,去各大搜索引擎搜出来的算法都是这个。
我大概比别人多思考了一步,我在想为什么要除2取余,经过思考我发现其实质是要找出这个数里面含有多少个2,例如例图中的150,它的里面就含有75个2,而2的二进制为10,也就是说要算出75个(10)₂的和。继续思考,你会发现,(10)₂+(10)₂=(100)₂=2² , (100)₂+(100)₂=(1000)₂=2³,于是我得出了如下图所示结果:
从上图中可以总结出一个规律:那就是2的指数是几,换算成二级制后面就有几个0,比如:2⁸=。这个也好理解,我的视频课程讲ASCII码时,说ASCII码只占用了7位存储,最高位为0,所以最多可以存储128个字符,存储范围从00000000到0,也就是10进制的0-127。下图就是我的最新算法:
大家可以对比一下,看看是否简化了原先的除2取余算法。如果你觉得本文还不错,请帮忙转发给需要的朋友。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/62290.html