第十四届蓝桥杯集训——JavaC组第八篇——进制转换
目录
第十四届蓝桥杯集训——JavaC组第八篇——进制转换
短除法
十进制转二进制示例:
十进制转换二进制
十进制转换八进制
十进制转换十六进制
二进制转十进制
八进制转十进制
十六进制转十进制
进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。位权是指,进位制中每一固定位置对应的单位值。
短除法
我们使用短除法将十进制转换成二进制。
模仿上面十进制按位权展开的方式,把二进制数1011按权展开:
1011=1×2^3+0×2^2+1×2^1+1×2^0=1×8+0×4+1×2+1×1=8+2+1=11
1011=
十进制转二进制示例:
十进制的5转换成二进制:
被除数 | 除数 | 计算过程 | 商 | 余数 | 次幂 |
5 | 2 | 5/2 | 2 | 1 | 0 |
2 | 2 | 2/2 | 1 | 0 | 1 |
1 | 2 | 1/2 | 0 | 1 | 2 |
所以十进制的5转换成2进制就是:【101】,那么其它是数同理,例如7就是:【111】。
我们来测试个比较大的数:55
被除数 | 除数 | 计算过程 | 商 | 余数 | 次幂 |
55 | 2 | 55/2 | 27 | 1 | 0 |
27 | 2 | 27/2 | 13 | 1 | 1 |
13 | 2 | 13/2 | 6 | 1 | 2 |
6 | 2 | 6/2 | 3 | 0 | 3 |
3 | 2 | 3/2 | 1 | 1 | 4 |
1 | 2 | 1/2 | 0 | 1 | 5 |
结果是:110111
十进制转换二进制
十进制转二进制:Integer.toBinaryString(10);
结果:1010
十进制转换八进制
十进制转八进制:Integer.toOctalString(10);
被除数 | 计算过程 | 商 | 余数 | 次幂 |
55 | 55/8 | 6 | 7 | 0 |
6 | 6/8 | 0 | 6 | 1 |
结果67。
十进制转换十六进制
十进制转十六进制:Integer.toHexString(10);
被除数 | 计算过程 | 商 | 余数 | 次幂 |
55 | 55/16 | 3 | 7 | 0 |
3 | 3/16 | 0 | 3 | 1 |
结果:37
package com.item.action;
public class demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 十进制转二进制
System.out.println(Integer.toBinaryString(10));
// 十进制转八进制
System.out.println(Integer.toOctalString(55));
// 十进制转十六进制
System.out.println(Integer.toHexString(10));
}
}
结果:
1010
67
a
二进制转十进制
二进制转十进制·valueOf("二进制字符串",2);
System.out.println(Integer.valueOf("110111", 2));
结果:55。
八进制转十进制
八进制转十进制·valueOf("八进制字符串",8);
System.out.println(Integer.valueOf("110111", 2));
结果:55。
十六进制转十进制
十六进制转十进制·valueOf("十六进制字符串",16);
System.out.println(Integer.valueOf("37",16));
结果:55。