关于二进制和十进制相互转换的思考

为什么会写这篇文章呢?起初是在跟小书童讨论IP地址和子网掩码的关联问题,我是靠长期锻炼的肌肉记忆去换算十进制和二进制的匹配关系,当小书童问我是怎么运算的,大脑一下卡壳了,而他总结了一套相对于网工来说很实用的凑数方法,可以很容易的学习掌握IP地址和子网掩码的对应关系。

基于这件事,我进行了一次深度思考,二进制和十进制的换算方法的根本原理是什么,为什么会是通过这样的方法来换算。

另外本文主要讲述关于二进制的思考,不过底层原理想通,八进制和十六进制与十进制的换算问题,原理相似,只要搞懂二进制和十进制之间的关系,八进制和十六进制、包括其他进制也都可以很轻松的理解了。

以1101(二进制)为例,换算成十进制计算方式如下:

为什么是2的3次幂,而不是其他,在探讨这个问题以前,我们先来看一下下面这个问题。

为什么人类社会选择了十进制

关于这个问题,我自己思考了很久,我们研究二进制和十进制的换算原理,这个问题就绕不过去,因为如果我们从一开始就使用二进制,而不是十进制,那就不涉及到现在的换算问题。

我自己在初步想通这个问题以后,也去查了网上的一些说法,有跟我想法类似的,也有很多高深的,为了让大家更容易的理解,在这里我采用了自己的这个对于普通人来说更容易接受的解释。

一共有2阶思考:

  1. 前提是以现有的十进制,阿拉伯数字0-9去理解。

因为我数学能力一般,很难去跳脱出现有的数学基础概念去思考这个问题,所以只能是借用已有的基础概念去分析这个问题。

二进制的意思是逢二进一,八进制就是逢八进一,十进制就是逢十进一,十六进制就是逢十六进一。

数字是用来表示物体的数量,按照已有的阿拉伯数字,“10”在上面每种进制中对应的实际物体数量如下:

10

实际数量

二进制

2

八进制

8

十进制

10

十六进制

16

从上表中我们可以看到,只有十进制的10跟实际数量是一致的,这样我们的大脑不需要经过额外的运算,可以通过看到的数字很直观的获取到实际的数据。

  1. 从我们的手指数量去理解。

一般情况下,我们每只手有5个手指,两只手刚好是10,一开始没有数学概念的时候,通过手指去计数,每够10个以后做一个标记,我想这大概念就是十进制的由来吧。

另外通过算盘我们也能看到十进制的影子,而且还是二进制与五进制结合的十进制,跟2只手、5个手指相对应,当我把这两个东西联系起来的时候,瞬间觉得好神奇。

二进制转换十进制

从上面我们可以初步认识到,十进制的数字跟实际数量是相同的,所以二进制转换十进制的本质就是算出二进制表示的具体数量,现在我们来看一开始提出的那个问题,为什么1101(二进制)换算十进制第一位会是2的3次幂。

二进制就是逢二进一,我们可以理解成一个合体升级的游戏,每2个同级的物体就可以合并升级成1个更高级别的物体,上图中的d我们看为1级,2个d合成1个c,2个c又合成一个b,最后2个b合成1个a,a在这里代表4级。

从d到a(从1级到4级),一共经历了3次合成(升级),所以1个a是由2*2*2(2的3次幂)个d组成的,而d代表计数的最小单元,所以1个a代表的实际数量就是8(个d)。

对于1101(二进制),从右往左分别是1级(1个d)、2级(0个c)、3级(1个b)、4级(1个a),现在要把二进制换算成十进制,也就是算出实际的数量,而d又是计数的最小单元,所以实际上就是算出一共有多少个d。

所有我们可以算出1101(二进制)一共代表了13个d。

8+4+0+1 = 13个d

对于八进制、十进制、十六进制来说也是同样的原理,以1101为例,我们看一下每种进制的换算结果。

十进制转换二进制

在网上找了一个十进制转换二进制的图片,用十进制的数去除2,一直到最后为1,然后从下到上列出余数,就是对应的二进制,那么为什么是这样的换算逻辑呢?

下面我们还是用1101(二进制)来举例,对应的十进制是13,也就是代表实际数量是有13个d,还是按照下面张图,我们去把这13个d去合成升级。

第1次合成(升级):13÷2=6,余1。代表合成了6个c,剩下1个d。

第2次合成(升级):6÷2=3。代表合成了3个b。

第3次合成(升级):3÷2=1,余1。代表合成了1个a,剩下1个b。

最后的结果是,13个d,我们一共合成了1个a,1个b,0个c,1个d。所以用二进制去表示13就是1101。

混合动力汽车(HEV)模型的Simscape模型(Matlab代码、Simulink仿真实现)内容概要:本文档介绍了一个混合动力汽车(HEV)的Simscape模型,该模型通过Matlab代码Simulink仿真工具实现,旨在对混合动力汽车的动力系统进行建模与仿真分析。模型涵盖了发动机、电机、电池、传动系统等关键部件,能够模拟车辆在不同工况下的能量流动与控制策略,适用于动力系统设计、能耗优化及控制算法验证等研究方向。文档还提及该资源属于一个涵盖多个科研领域的MATLAB仿真资源包,涉及电力系统、机器学习、路径规划、信号处理等多个技术方向,配套提供网盘下载链接,便于用户获取完整资源。; 适合人群:具备Matlab/Simulink使用基础的高校研究生、科研人员及从事新能源汽车系统仿真的工程技术人员。; 使用场景及目标:①开展混合动力汽车能量管理策略的研究与仿真验证;②学习基于Simscape的物理系统建模方法;③作为教学案例用于车辆工程或自动化相关课程的实践环节;④与其他优化算法(如智能优化、强化学习)结合,实现控制策略的优化设计。; 阅读建议:建议使用者先熟悉Matlab/Simulink及Simscape基础操作,结合文档中的模型结构逐步理解各模块功能,可在此基础上修改参数或替换控制算法以满足具体研究需求,同时推荐访问提供的网盘链接获取完整代码与示例文件以便深入学习与调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明明见自己

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值