进制的转换
例题引入
首先我们由牛客网上一道Java专项练习题引入:
那我们先来看一下八进制的13如何转十进制:
八进制的14转为十进制:
八进制的204转为十进制:
所以可得:
11 x12=132
由此可知该题选A。
那么正确的做法应该是怎么样的呢?
首先我们可以假设这个式子现在是x进制
对A选项来说,我们可以得出如下的公式:
最后解得x=8或者x=-1(不符合题意直接去掉)即我们计算出该条式子采用的是八进制。
下面让我们来系统学习一下各机制之间是如何转换的。
1.十进制与二进制之间的相互转换
(1)十进制转换为二进制
方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
(具体用法如下图)
(2)二进制数转换为十进制
方法为:把二进制数按权展开、相加即得十进制数。
(具体用法如下图)
2.十进制转八进制或者十六进制有两种方法
这里补充说一下十六进制和八进制的表示方法:
Java中十六进制适用所有整数数据类型,以前缀0x或者0X,后跟0-9或a-f(A-F)来表示。其中a-f即分别对应数字10-15。
而八进制前缀是用0来表示,后跟0-7。
下面继续看两种转换方法:
第一:间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。
第二:直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。
(具体用法如下图)
3.八进制或者十六进制转成十进制
方法为:把八进制、十六进制数按权展开、相加即得十进制数。
(具体用法如下图)
4.八进制转二进制
方法为:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。
(具体用法如下图)
5.二进制转八进制
方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。
(具体用法如下图)
6.二进制转十六进制
方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。
7.十六进制转二进制
方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
(具体用法如下图)