有人问我一道十进制数转化为二进制数的题:13.625转化为二进制应该如何表示。让我回忆起十多年前学编程时就搞不懂二进制,不找“不必求甚解”的借口,我搜索了一些平台,但很失望,这么多年过去了,能找到的资源依然和以前一样,只讲怎样操作,不提为什么这样操作。让读者、学习的人知其然,不知其所以然。
也可能“大神”们认为,二进制与十进制数互相转换的方法告诉你后,你很容易就理解背后的原理了。在知乎上看到吐槽高校的教材编写质量的文章有很多,才知道实际上大部分人和我一样,都没有这样高的悟性。
文科学习中,读书时“不求甚解”是古人留给我们的学习经验,晋朝陶渊明在《五柳先生传》中说“好读书,不求甚解,每有会意,欣然忘食”。理工科的学习中,貌似应该摒弃此种读书的方法,应该把细节搞清楚,不留隐患。
找不到资源,或者不想用大量时间去找了,求人不如求己,索性自己琢磨,自己成为资源的提供方。
先简单科普下二进制,再说二进制与十进制数互相转换的方法,然后给出二进制与十进制数互相转换的原理。
二进制就是逢二进一,仅有两个数字0和1。有人说二进制源自1679年德国数学家莱布尼茨的思考,有人说源自中国的太极生两仪,两仪生四象,四项生八卦。但深刻、广泛的应用二进制,要到计算机的诞生,因为计算机只认识两个数字0和1,让电子件保持两个稳定状态比如有电压、无电压,容易做到,可让电子件保持10个稳定状态很难。所以,现在世界上的所有计算机,手机的内部运算使用的都是二进制数。
武断了,曾经有个很强大的国家叫苏联,制造出用三进制运算的计算机,据说苏联的数学家理论上证明过e进制运算是最高效的,三比二更接近e,实践也证明三进制计算机确实比二进制计算机更高效。各种原因,很遗憾,我们没有见过,用过三进制计算机。
十进制数和二进制数的前几个数对应表如下:
下面举具体例子说明十进制数和二进制数互相转化的方法
所以,最开始的问题,13.625化为二进制数的方法如下图:
下面讲转化的原理:
首先说明一下数位的含义。古罗马人用字母V表示5,字母 I 表示1,但 VI 并非表示51,大概那个年代还没有数位的概念,所以VI表示5+1=6,同理X表示10,但IX也不是110,IX=10-1=9。以下图的表盘为证
我们现在书写数字的习惯是按数位理解的,51中的5在十位上,表示50,1在个为上,表示1。51=50+1
再例如5834表示5千+8百+3十+4,把千,百表示数位的字换成科学计数,如下图
同理,二进制数1101的第一个1(最高位上的1)不是在千位(10^3)上,而是在2^3位上;第二个1,不是在百位上,是在“4”位上。
小数的数位翻译如下图
所以,二进制的整数或者小数转化为十进制数时,把每个数位上的0或1乘以对应的数位,再把积相加即可。
十进制的整数或者小数化为二进制数,看上面给的方法就很难,其原理用语言表达出来,想要严谨、简洁也很难。这里我就不试着表达了,用算式表达我的思考过程吧。
十进制整数化为二进制整数不用上面的待定系数法了,直接类比法得到,如下图
仿照得到5、8、3、4的方法,类比得:
把上面的两个推理写的形式再简洁一些
如果上面的没有看懂,不用沮丧,因为我上面说的理工科学习应该摒弃“不求甚解”的观点,逻辑上好像有道理,可在实践中是不成立的。任何人都不可能短时间掌握真理的所有细节。光是波还是粒子,科学家们争论了很多年;飞机都已经在天上飞了很多年,自行车我们基本都会骑行,但飞机和自行车的原理科学家们直到现在也不能给出完美解释。
看任何书,都可以不求甚解,对学习来说,最重要的是,每有会意,欣然忘食。
如果上面的没有看懂,不用沮丧,也可能是因为我写的水平太差,并非你的悟性不好。最重要的是,每有会意,欣然忘食。
网络安全成长路线图
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成hei客大神,这个方向越往后,需要学习和掌握的东西就会越来越多,以下是学习网络安全需要走的方向:
# 网络安全学习方法
上面介绍了技术分类和学习路线,这里来谈一下学习方法:
视频学习
无论你是去B站或者是油管上面都有很多网络安全的相关视频可以学习,当然如果你还不知道选择那套学习,我这里也整理了一套和上述成长路线图挂钩的视频教程,完整版的视频已经上传至CSDN官方,朋友们如果需要可以这个链接免费领取。网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/97920.html