进制介绍

「进位制」是一种记数的方式,也被称为「进位记数法/位值计数法」,可以用有限的数字或者字母来代表所有的数值,可使用的数字符号称为基数(radix),基数为n,即可称n进位制,简称n进制。离我们最近的就是阿拉伯数字的十进制,它就是使用0~9进行记数,所以他的基数就是10,称为十进制

但是在计算机的世界,计算机的语言就是二进制,计算机能够识别二进制数据,其他数据并不能直接识别,紧接着我就会总结几个比较重要的进制之间的转换,不着急,我先一一解释有哪些进制

十进制表示为:(2022)10

二进制表示为:(11111100110)2

八进制表示为:(3746)8

十六进制表示为:(7e6)16

右下角标的数字代表了是几进制,虽然表示各有不同,但是他们表示的数字都是一样的,都是2022

二进制

二进制由于表示简单,且运算简单等特点,是计算机技术中广泛运用的数制,它仅由0、1数字组成,运算的规则为“逢二进一”

为了区别其他进制,它通常用两种方式来表示,使用数字下标「2」或「B」

(10111111)2或(10111111B)

「二进制的特点有」(摘自知乎):

  • 二进制数中只有两个数码0和1,可用具有两个不同稳定状态的元器件来表示一位数码。
  • 二进制数运算简单,大大简化了计算中运算部件的结构。
  • 二进制天然兼容逻辑运算。

八进制

八进制由0、1、2、3、4、5、6、7八个数字组成,运算规则为“逢八进一”

八进制也有两种方式来表达,在数字下标「8」或「O」

(3475)8或(3475O)

「八进制的特点有」(摘自知乎):由于二进制数据的基数R较小,所以二进制数据的书写和阅读不方便,为此,在小型机中引入了八进制。八进制的基数n=8=2^3,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。

十六进制

十六进制的引入也是由于二进制使用时位数过长、不容易记忆才诞生了十六进制

十六进制有16个基本数字,分别0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,运算规则为“逢十六进一”。

十六进制也有两种表达方式,使用数字下标「16」「H」或在最前面加上「0x」

(7ee5)16或(7ee5H)或(0x7ee5)

Tips:

进制的中英文表示:

  • Binary -二进制
  • Octal -八进制
  • Hexadecimal -十六进制
  • Decimal -十进制

进制间的转换

在上方了解常用的进制后,后面在实际工作钟我们可能在不同的场景用到不同的进制,就会涉及到进制的转换,接下来我从各大网站获取的资料并且总结了常用进制的转换方式

二进制

➡十进制

方法:按权展开相加

例题如图

注意:关于位权的顺序,由小数点为分界线,分别往两边开始计算位权

➡八进制

方法:1分3,并按权展开相加

例题如图

➡十六进制

方法:1分4,并按权展开相加

例题如图

八进制

➡二进制

方法:3合1,逆向利用按权展开相加

例题如图

➡十进制

方法:按权展开相加

例题如图

➡十六进制

方法:

  • 先将八进制转换成二进制,再将二进制转换成十六进制(底下展示这种)
  • 先将八进制转换成十进制,再将十进制转换成十六进制

十进制

方法:除基倒取余或乘基正取整

对于十进制,转换成2、8、16进制只有一种办法(除图标查询以及自动计算)

其中你需要转换的几进制中的几就是基数,例如转八进制,即基数为8,底下我只解释转为16进制

十六进制

➡二进制

方法:1分4,逆向按权展开相加

➡八进制

方法:

  1. 十六进制转化为二进制,再转化为八进制。
  2. 十六进制先转化为十进制,再转化为八进制。

具体方法均可以从该文档找到解决办法,这里不多做解释

➡十进制

方法:逆向按权展开相加

总结

  • 我发现所有进制转为十进制的时候,根据你要转的进制用不同的权值,例如:16转10进制,那权值即为16,在按权展开相加时得用16的几次方来相乘。
  • 最特殊的是十进制的转化,方法全为「除基倒取余或乘基正取整」
  • 其次就是2进制与8、16进制一分3、4之间的关系,利用好按权展开相加的逆向用法,即可快速的求出相应进制的数字

然而进制往往不是这几种,根据不同的进制来进行计算,学无止境,大家一起加油吧!

附件

自动换算网址: 在线进制转换器 | 菜鸟工具

进制关系表:

该图摘自《计算机导论》(清华大学出版社第4版)

参考文档:一文带你读懂计算机进制 - 知乎