十进制转换成其它进制

二进制

1
Integer.toBinaryString(100)

八进制

1
Integer.toOctalString(100)

十六进制

1
Integer.toHexString(100)

Java代码

1
2
3
4
5
6
7
8
public static void main(String[] args) {
//十进制转换成二进制 1100100
System.out.println(Integer.toBinaryString(100));
//十进制转换成八进制 144
System.out.println(Integer.toOctalString(100));
//十进制转换成十六进制 64
System.out.println(Integer.toHexString(100));
}

结果

1100100
144
64

各种进制转换成十进制

1
Integer.parseInt("1100100", 2)

第一个参数为要转换成十进制的数(它是几进制数由第二个参数决定),第二个参数是说明第一个参数是几进制数

Java代码

1
2
3
4
5
6
7
8
public static void main(String[] args) {
//二进制转换成十进制
System.out.println(Integer.parseInt("1100100", 2));
//八进制转换成十进制
System.out.println(Integer.parseInt("144", 8));
//十六进制转换成十进制
System.out.println(Integer.parseInt("4096", 16));
}

结果

100
100
16534

十进制转换成任意进制

Java代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class Main {
public static void main(String[] args) {
//10进制数转换成15进制数
System.out.println(getResult(getSting(26,15)));
//10进制数转换成7进制数
System.out.println(getResult(getSting(26,7)));
}

/**
* 根据除n取余法获得基本的进制数(余数10没有用A表示,11没有用B表示,以此类推...)
*
* @param num 要转换的十进制数
* @param radix 要转换成多少进制数
* @return
*/
public static String getSting(int num, int radix) {
StringBuffer sb = new StringBuffer();
while (num != 0) {
sb.append(num % radix).append(",");
num = num / radix;
}
return sb.toString();
}

/**获得最终结果(余数10用A表示,11用B表示,以此类推...)
* @param str
* @return
*/
public static String getResult(String str) {
StringBuffer sb = new StringBuffer();
String[] arr = str.split(",");
String[] arr2 = new String[arr.length];
int j=0;
for (int i = arr.length - 1; i >= 0; i--) {
arr2[j] = arr[i];
j++;
}
for (String s : arr2) {
if (Integer.parseInt(s) > 9) {
sb.append((char)(Integer.parseInt(s) + 55));
} else {
sb.append(s);
}
}
return sb.toString();
}
}

结果

1B
35

PS.

除X取余法查看博客:进制(第一张图片便是除2取余法)