一篇文章带你彻底搞懂进制转换

前言

进制转换是一个十分重要的知识点,虽然在未来工作中遇到的次数可能不多,但却是一个必备的技能,能够熟练进行进制转换是本次的学习目标。

进制转换并不难,你只需要具备小学二年级以上的数学只是就可以轻松掌握。

数制类型

二进制

  1. 人类目前进行数数的数制是十进制,因为人类就十根手指头对吧,逢十进一
  2. 假如我们只有两根手指头,那么就是所谓的二进制了,逢二进一,只有01两个符号;

举个例子:我们用二进制数苹果;

0个苹果就是0
1一个苹果就是1
2个苹果就是10
3个就是11
4个就是100
5个就是101

多少个苹果是数字,用的是十进制,而后面的就是二进制,0和1是符号,11,100,101是符号的组合,可以理解为用这些符号来代表我们前面的十进制数字;

0
1
10=2
11=3
100=4
101=5
110=6

计算机之所以使用二进制是因为二进制简单

二进制特点:两种符号(0和1),逢二进一

十进制

  1. 咱们先说十进制,十进制有十个符号,也就是09,那么10算是一个符号吗?

其实是不算的,10是1和0这两个符号的组合

  1. 所以十进制中单纯的符号就只有0到9这十个;

而且不管是什么进制,第一个符号一定是0

  1. 那么我们再类推一下,二进制的符号应该有两个,而第一个符号一定是0,那么二进制的符号就是0到1两个符号, 八进制就是0到7;
  2. 比较特殊的是十六进制,十六个符号,前十个符号就是0到9,因为我们前面说到10不是一个符号而是两个符号的组合,那么为了避嫌;

在十六进制中是用A来代替10,往后B是11,C是12,D是13,E是14,F是15,所以十六进制是0到9和A到F

进制

  1. 我们再考虑一下什么是进制,进制进制,也就是进位的制度叫做进制

如果0到9不进位的话,是不是代表着全世界的钱就只能数到九块钱啊?

  1. 那当然不是了,是不是还可以数到十块钱啊,那么十块钱是怎么来的呢?

是通过所谓的进位来实现的。

  1. 0到9是属于个位,数到9了没办法了就只有向高位进一位,9+1=10,也就是十就是比9大1;

因为向高位进了一位了,所以这个时候我们应该将个位置零,所以十就是10,低位用0到9表示,没有空余的时候就向高位进一位并将低位置零,以此类推。

  1. 那么这个时候如果再加1是变成11还是20啊?

高位的那个1(也就是十位的1)比9大,将个位置零以后就变成了10,所以要加1的话应该是加在低位上,所以应该变成11。

  1. 不管什么进制,我们加1永远是往低位加,低位不够用了才向高位加一并将最高位除外的低位全部置零

以此类推到19,再进位,变成20,一直到99进位变成100,每一位上只能是0到9,遇到9就必须向高位进一位。

  1. 这就是所谓的十进制,所谓的逢十进一,以及前面我们所讲的二进制逢二进一也清晰明了;

  2. 进制的最终目的是数数,十块钱就是十块钱,不管是用二进制还是十进制,数出来是十块钱那就是十块钱,只不过是用的方法不同罢了。

数钱举例:十进制中的10是十块钱,读作,而二进制中的10代表的是两块钱,读作一零

进制转换

二进制与十进制

  1. 我们需要掌握的是进制之间的快捷转换方法

比如二进制与十进制之间的转换 ,比如1011111转换成十进制是多少?

  1. 如果按照二进制的办法去一个一个数那岂不是很慢,在这里我们就先来讲解一下常规算法,这个算法适用于任何进制转十进制

比如,我们现在把十进制的888转换成十进制,没错,十进制转十进制

  1. 在这里我们先说一下位权,位就是十位个位百位,低位高位;
  2. 权可以理解为权力,每一位都有它自己的权力,这个权力我们就称之为位权

在这里,个位的8的位权就是1十位的8的位权就是10,同理百位的8的位权就是100

  1. 位权的规律从低到高就是用低一位的位权进制数

这里是十进制,所以进制数就是,所以十位的位权就是个位的位权乘十百位的位权就是十位的位权乘十

  1. 在这里需要记住一个规律就是,不管是什么进制,它的第一位的位权一定是1
  2. 我们现在再来看看这个十进制888转十进制,每一位乘它的位权然后相加,所得到的就是一个十进制的数字

在这里个位就是8×1=8十位就是8×10=80百位就是8×100=800,最后将这些数字相加得到的就是转换后得到的十进制的数字888

  1. 这个例子看起来很弱智,好多人看到这估计都看笑了,这作者脑子有屎吧,十进制的888转十进制,想都不用想肯定也是888啊,但是这个例子只是为了让大家学会这个方法

  2. 那么我们再来看看刚才我们所说的那个例子,二进制1011111转十进制等于多少

首先我们先来看每一位的位权,因为是二进制,所以位权就是低位的位权乘二第一位的位权是1,那么就是如下:

每一位乘位权相加就是十进制的数,所以就是:1×1+1×2+1×4+1×8+1×16+0×32+1×64=95,所以这个二进制转换成的十进制数字是95;

  1. 所以理论来说,咱自己就可以造进制了,比如九进制吧,那么就是逢九进一,符号是0到8第一位的位权是1高一位的位权就是9,以此类推,1,9,81,…
  2. 那么位权的公式就是进制数n-1次方,这里的n是位数

比如二进制,进制数是2第一位的位权就是2的1-1次方,所以就是1高一位也就是第二位的位权就是2的2-1次方,所以就是2以此类推下去,第三位就是2的3-1次方为4,…;

  1. 上一篇文章中我们提到IP地址是由32位二进制网络编码组成的,每8位转换成十进制为一组,所以最小的就是每一组都为8个0,所以最小的IP地址0.0.0.0,而最大的就是每一组都为8个1,而二进制11111111转换成十进制就是255,所以最大的IP地址255.255.255.255也就是广播地址,所以IP地址的范围是0到255

  2. 刚才我们提到十六进制0到9A到F的组合来表示10到15,所以十六进制就是逢16进1,所以在十六进制中:

F=15
10=16
11=17

1F=31
20=32
等号左边十六进制表示方式,等号右边十进制!!!

十进制转任意进制

位权凑数法
  1. 利用位权的方法我们可以实现任意进制转十进制,那么十进制转任意进制该如何实现呢?
  2. 先来讲讲最简单十进制转二进制,对于十进制数字比较小的情况下我们可以使用位权凑数法
  3. 比如将十进制17转成二进制,我们先在脑子里面想出二进制前五六位的位权,1,2,4,16,… 然后将这个十进制数拆成二进制位权的和的形式,17=16+1,二进制中第一位的位权是1第五位的位权是16,所以17=10001
  4. 同理将十进制数20转成二进制,20=16+4,二进制中第三位的位权是4,第五位的位权是16,所以20=10100

那么如果数字偏大了呢? 比如十进制数88转二进制是多少呢?

  1. 88=64+16+8,然后找到对应的位权,写出来就好了,因为这个组合是凑数凑出来的,有的哥们就不自信,88难道只能64+16+8吗,难道没有其他的组合吗?

答案是没有!因为不管是什么进制,它的本质是用来数数的,十进制二进制只是数字的不同的表现形式,所以同一个数字的十进制和二进制是唯一对应的,不管别的什么进制也都一样,都是唯一对应的。

减法凑数法
  1. 所以在这里我们要介绍一个单纯凑数法更高级的一种方法,叫做减法凑数法

依然用88举例子,我们观察88这个数字与二进制位权中哪个位权最接近?

  1. 如果不能马上反应过来,也可以在草稿纸上从最低位开始往高位书写位权,直到找到最接近88的那个位权,也就是6488-64=24
  2. 那么我们又接着找二进制位权中最接近24的那个位权,也就是1624-16=8,然后再找二进制位权中最接近8的那个位权,也就是8本身,到这就不用再找了,因为64,16,8这三个数字已经可以把88凑出来了;
  3. 那么我们要找的二进制位权就只有64,16和8,在这里我们需要记住二进制前8位的位权,从高位到低位分别是:128,68,32,16,8,4,2,1
    请添加图片描述

举个例子: 将十进制190转二进制;

  1. 我们先找跟190最接近的那个二进制位权,也就是128,接着我们在草稿纸或者脑海里,从128开始往低位依次写出位权, 128190接近,然后190-128=62,与62最接近的位权是3262-32=30,与30最接近的是1630-16=14,与14最接近的是814-8=6,与6最接近的是46-4=2,与2最接近的是2;

在这里需要注意的是: 我们找的最接近的数字一定是比目标数字小的;

比如前面的62,最接近的数字为什么是32而不是64呢,因为62本身就已经比64小了,所以凑数的时候就不能用64了;

  1. 所以190=128+32+16+8+4+2,在128,32,16,8,4,2的下方分别写上数字1其余位权数下写0,最后我们就能得到转换后的数字,190=10111110请添加图片描述
  2. 记住二进制的前八位位权就已经可以应对大部分常见数字了,还需要记住的是二进制的前八位位权的总和等于255;

这个有什么用呢?

  1. 比如将十进制250转换成二进制,因为二进制的前八位位权总和等于255,要将250转换成二进制不就是将255-5后转换成二进制吗,5=4+1,也就是位权为4和1的地方0其余部分1250=11111010;
    请添加图片描述

  2. 当然这是在没有工具的情况下计算的,现在是科学时代,能用工具就用工具,没有工具咱也一样能算,有一种计算器叫做进制转换计算器,有卖的,也可以上网找一个在线的,把数字输入进去,选择要转换的目标进制,然后就能得到答案;

计算机考试中,一般进制转换出题不会超过8位,当然个别nt老师为了考试而出题的除外,二进制在IT中主要就是与IP地址有关系,IP地址不就是8位二进制吗?

十六进制转换

这个只需要了解即可,现实中很少需要十六进制的转换,除了个别非常变态的考试,其他情况下遇到了用工具就好了,比如给你一个数字1A,你能认识他是十六进制就行了;

  1. 我们知道,在刚才我们学习的二进制十进制十六进制中都是有10存在的,那么在现实中我们怎么区分这个10是十进制二进制还是十六进制呢?
  2. 我们一般会给这个数字打上一个括号然后在括号的右下角写上数字,写2就代表这个括号中的数字是一个二进制16就代表着是十六进制十进制或者其他进制同理

如果有的哥们说,欸我非要学会十六进制的转换,那我们就在这里简单的介绍一下

  1. 我们知道任何进制第一位的位权一定是1高位的位权就是用低一位的位权进制数,在这里是十六进制,进制数为16,所以第二位的位权就是1×16=16第三位的位权就是16×16=256以此类推;

  2. 我们前面讲过,任何进制转十进制都是每一位乘它对应的位权数然后相加,十六进制转十进制也是一样的道理,这里就不过多举例子了,感兴趣的兄弟可以自己下去参考前面二进制转十进制尝试十六进制转十进制,也可以后台私信我和我一起讨论

  3. 在整个职业生涯中,让你用十六进制转十进制都非常少,除非个别考试中会用到,十六进制转十进制就根据前面的方法依次类推就好了;

这里介绍一个技巧,如果非要你把十六进制转化成二进制应该怎么转化

  1. 大多数同学应该会选择十六进制转十进制然后再十进制转二进制,我所介绍的这个技巧跟这个方法差不多,但是会更快一点,我们需要记住,十六进制和二进制的位数是1:4的

什么意思呢?

  1. 也就是十六进制每一位对应的是二进制四位

举个例子,这里所有进制数我们都采用前面所介绍的书写方法,现在我们将下面这个十六进制转化成二进制;

请添加图片描述

  1. 十六进制每一位所对应的是四位二进制数,那么我们只需要将这个十六进制数BC中的每一位拆开

先看C吧,十六进制数C转化成十进制数就是12,12转化成二进制就是1100;再看B十六进制数B转化成十进制数就是11,11转化成二进制就是1011

请添加图片描述

  1. 那么我们把这两位十六进制数所对应的二进制数合在一起就能得到最终结果10111100
    请添加图片描述

  2. 关于这个算法小技巧大家掌握即可,有兴趣的同学可以自己出题多算算,熟练即可,在工作中基本遇不到二进制和十六进制之间的转换问题;

  3. 但是在后续关于路由器防火墙的文章中,我们会介绍HSRP(Hot Standby Routing Protocol)热备份路由选择协议,这个协议中的虚拟MAC地址就会运用到这个小知识;

除了这个以外,在其他地方我还没有碰到过,如果有补充的兄弟可以直接在评论区或者私信我进行讨论;

  1. HSRPCisco(思科)的私有的一种技术,它可以确保网络边缘设备或者是接入链路出现故障时,快速透明恢复用户通信,通过应用HSRP,可以让网络的正常运行时间接近100%,从而满足用户对网络可靠性的要求;

HSRP热备份路由选择协议中的组成员包括:活跃路由器备份路由器其他路由器,在这篇文章中我们只需要了解一下就行,在后续的文章会进行详细的介绍

MAC地址与十六进制

  1. 有的兄弟可能就要问了,我们为什么要学十六进制呢?
  2. 我们的电脑配置IP地址,也顶多只需要运用到十进制二进制,除了配置IP地址以外,我们每个人买的电脑,在出厂的时候网卡都有一个被固化的物理地址;

为什么叫物理地址呢?

  1. 因为是固化的不可改变的,这个物理地址不像IP地址一样,今天改一个明天改一个,所以我们把IP地址叫做逻辑地址,而固化在网卡里面的叫做物理地址,俗称MAC地址
  2. 可以利用win+R打开命令窗口输入cmd,用命令ipconfig /all查看自己的物理地址,这个地址是由十六进制组成的;
    请添加图片描述

这个物理地址的前六位代表的是某一个公司注册的开头

请添加图片描述

  • 也就是说所生产的网卡开头的六位如果是相同的话,就代表着这些网卡是同一家公司生产的;

物理地址的后六位则是该公司生产的网卡的编号

请添加图片描述

  • 因为只有六位,所以总有用完的一天,所以如果用完了,该公司就只有再去申请注册一个新的开头然后接着生产;
  1. 每个人的网卡都是全球唯一的,后边介绍交换机原理的时候咱就可以知道为什么每个人的网卡都必须是全球唯一的了;
  2. 我们这个MAC地址是永远不能改变的;

有的同学可能就会说了,欸我知道一个软件可以修改我们的MAC地址

  1. 这个软件我们在后续文章中也会介绍到,但是这个软件修改MAC地址并不是把原来的MAC地址给擦除掉以后再改上一个新的MAC地址;

而是相当于你拿一块胶布,把原来的MAC地址挡住再写一个新的,但是当你重启电脑的时候可能这个MAC地址就回到原来的那个地址了;

  1. 所以需要记住的是,我们的MAC地址是永远不可能擦除的

那这个MAC地址有什么作用呢?

  1. 在我们以后学习攻击的时候就可以用到,假如这个MAC地址是某个坏蛋的,那我们就可以做跟踪,因为MAC地址是全球唯一的,可以跟踪定位或者其他的一些用处,在这里我们就不细讲了。

以上为本期分享的所有内容,主要介绍了进制之间的转换作用;更多内容会在后续文章进行分享!感兴趣的朋友们可以点个关注,每周持续分享技术文章!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值