给你一串二进制的数字1010,你能转换出它的10进制数字吗?或者给你一串16进制数字2020,你能转换出它的10进制数字吗?在编程中,其他进制转化成十进制是基本功,是每个程序员都应该掌握的基本技能,故而于此介绍该转换方法。
进制之间的转换分为大进制转十进制和小进制转十进制。
为了让大家理解后面的进制转换方法的原理,在对这两种转法进行阐述之前,我们需要重新审视一下进制是什么?
十进制的原理
十进制,便是以0~9十个数字来进行数量记录的一个方式。我们可以分析一下2025这个数字,它由个位、十位、百位、千位组成。但将这些名字换成数学的表达,更准确地说,它是由10^0、10^1、10^2、10^3(注意从右往左的次数从0开始,而不是从1开始)这四个部分的数字来组成。当你将每一位都乘以它们对应的10的次方之后,将得到的数字相加,你就会发现它们的和恰好就是2025这个数字,这也就是十进制的构成原理。八进制和十六进制或者最经典的二进制,其转换成十进制的方法就显而易见了,本质都是一样的,都可以将每一位视为几进制的对应次方。例如二进制1010,这个数字就可以以十进制的视角,将其视为由2^0、2^1、2^2、2^3这四个部分组成的,由此我们就可以摸索出转换成十进制的规律了。
I.大进制转十进制
十六进制转十进制怎么转?当我们面对这类从更高的进制转变为更小的十进制时,我们可以选择将每一位都乘以大进制对应位次,然后将结果相加。这个操作流程和十进制每一位对应乘以10的次方是一样的,具体操作流程如下:
以十六进制下的2020为例,从右往左,每一位依次计算,0*16^0=0;2*16^1=32;0*16^2=0;2*16^3=8192;将它们都加起来,就等于8224。如此,一个完整的转换过程就完成了。
II.小进制转十进制
这种转法也是一样的模板,只不过将每次乘16的次方变成乘2的次方。还是二进制1010,它的每一位乘上2的对应次方后,和为10,其代表的含义也就是10。