一、概述
java进行进制转换,学习到的一个转换方法;
0b开头默认是二进制
0开头默认是八进制
整数默认是10进制
0x开头默认是16进制
1. x进制转10进制
方法为 每一位的 数值 * x的(总长度-1-i次方) 的和:
如 二进制的 10101 转10进制,则结果为 1*2的4次方 + 0 + 1*2的2次方 + 0 + 1*2的0次方 = 21
如 8进制的 72 转10进制,则结果为 7*8的1次方+2*8的0次方 = 58
2. 10进制转x进制
方法为 直接用数值除以 x 得到余数追加到字符串,直到最后除数为0为止,然后字符串倒叙,则是对应的进制的结果
如1 0转二进制 则 10/2 商 5 余 0
5/2 商 2 余 1
2/2 商 1 余 0
1/2 商 0 余 1
除数为0,结束;结果为1010
如10 转8进制 则 10/8 商 1 余 2
2/8 商 0 余 1
除数为0,结束;结果为12
2. x进制转y进制
方法为 先将x进制转换为10进制,再将转换得到的10进制转换为y进制
如 二进制的1010 转 8进制;先转为10进制=10,然后再转为 8进制=12
3. 代码
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//进制转换 public static void main(String[] args){ System.out.println(xToYScale("12", 10, 2)); System.out.println(xToYScale("12", 16, 2)); System.out.println(xToYScale("1010", 2, 10)); System.out.println(xToYScale("144", 8, 16)); } private static String xToYScale(String str, int oldScale, int toScale){ StringBuilder result = new StringBuilder(); if(toScale == 10){ int num = 0; for(int i = 0; i < str.length(); i++){ num = num + Integer.parseInt(String.valueOf(str.charAt(i))) * (int)Math.pow(oldScale, str.length() - 1 - i); } result.append(num); }else if(oldScale == 10){ int num = Integer.parseInt(str); while (num != 0){ result.insert(0, num % toScale); num = num / toScale; } }else{ int num = 0; for(int i = 0; i < str.length(); i++){ num = num + Integer.parseInt(String.valueOf(str.charAt(i))) * (int)Math.pow(oldScale, str.length() - 1 - i); } while (num != 0){ result.insert(0, num % toScale); num = num / toScale; } } return result.toString(); }
最后
以上就是独特长颈鹿最近收集整理的关于java 实现各种进制之间相互转换一、概述的全部内容,更多相关java内容请搜索靠谱客的其他文章。
发表评论 取消回复