二进制与十进制数互相转换的方法及原理

有人问我一道十进制数转化为二进制数的题: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的方法,类比得:

把上面的两个推理写的形式再简洁一些

如果上面的没有看懂,不用沮丧,因为我上面说的理工科学习应该摒弃“不求甚解”的观点,逻辑上好像有道理,可在实践中是不成立的。任何人都不可能短时间掌握真理的所有细节。光是波还是粒子,科学家们争论了很多年;飞机都已经在天上飞了很多年,自行车我们基本都会骑行,但飞机和自行车的原理科学家们直到现在也不能给出完美解释。

看任何书,都可以不求甚解,对学习来说,最重要的是,每有会意,欣然忘食。

如果上面的没有看懂,不用沮丧,也可能是因为我写的水平太差,并非你的悟性不好。最重要的是,每有会意,欣然忘食。

    网络安全入门学习路线

其实入门网络安全要学的东西不算多,也就是网络基础+操作系统+中间件+数据库,四个流程下来就差不多了。

1.网络安全法和了解电脑基础

其中包括操作系统Windows基础和Linux基础,标记语言HTML基础和代码JS基础,以及网络基础、数据库基础和虚拟机使用等...

别被这些看上去很多的东西给吓到了,其实都是很简单的基础知识,同学们看完基本上都能掌握。计算机专业的同学都应该接触了解过,这部分可以直接略过。没学过的同学也不要慌,可以去B站搜索相关视频,你搜关键词网络安全工程师会出现很多相关的视频教程,我粗略的看了一下,排名第一的视频就讲的很详细。 当然你也可以看下面这个视频教程仅展示部分截图: 学到http和https抓包后能读懂它在说什么就行。

2.网络基础和编程语言

3.入手Web安全

web是对外开放的,自然成了的重点关照对象,有事没事就来入侵一波,你说不管能行吗! 想学好Web安全,咱首先得先弄清web是怎么搭建的,知道它的构造才能精准打击。所以web前端和web后端的知识多少要了解点,然后再学点python,起码得看懂部分代码吧。

最后网站开发知识多少也要了解点,不过别紧张,只是学习基础知识。

等你用几周的时间学完这些,基本上算是具备了入门合格渗透工程师的资格,记得上述的重点要重点关注哦! 再就是,要正式进入web安全领域,得学会web渗透,OWASP TOP 10等常见Web漏洞原理与利用方式需要掌握,像SQL注入/XSS跨站脚本攻击/Webshell木马编写/命令执行等。

这个过程并不枯燥,一边打怪刷级一边成长岂不美哉,每个攻击手段都能让你玩得不亦乐乎,而且总有更猥琐的方法等着你去实践。

学完web渗透还不算完,还得掌握相关系统层面漏洞,像ms17-010永恒之蓝等各种微软ms漏洞,所以要学习后渗透。可能到这里大家已经不知所云了,不过不要紧,等你学会了web渗透再来看会发现很简单。

其实学会了这几步,你就正式从新手小白晋升为入门学员了,真的不算难,你上你也行。

4.安全体系

不过我们这个水平也就算个渗透测试工程师,也就只能做个基础的安全服务,而这个领域还有很多业务,像攻防演练、等保测评、风险评估等,我们的能力根本不够看。

所以想要成为一名合格的网络工程师,想要拿到安全公司的offer,还得再掌握更多的网络安全知识,能力再更上一层楼才行。即便以后进入企业,也需要学习很多新知识,不充实自己的技能就会被淘汰。

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

尾言

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,最后联合CSDN整理了一套【282G】网络安全从入门到精通资料包,需要的小伙伴可以点击链接领取哦! 网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值