最近在做项目重构,C语言的项目重构成java项目,并且使用gradle构建成微服务项目放到云平台上运行。看到c代码中的进制转换,突然发现java中的进制转换都是已经封装好了。
Integer num =10;
String binary = Integer.toBinaryString(num);//10进制转2进制
String octal = Integer.toOctalString(num);//10进制转8进制
String hex = Integer.toHexString(num);//10进制转16进制
System.out.println(Integer.toBinaryString(num));//结果为 1010
System.out.println(Integer.toOctalString(num));//结果为 12
System.out.println(Integer.toHexString(num));//结果为 a
//其它进制转10进制
Integer num = Integer.parseInt((String) s,(int)radix);
s ---就是需要转换的字符串
radix ---就是需要转换成的进制
比如:
//16进制转换为10进制
String hex ="1A";
Integer num = Integer.parseInt(hex,16);//16进制转10进制
因此java中无论是其它进制转10进制,还是10进制转其它进制都是有的,那么比如16进制转2进制呢?
我们可以16进制先转10进制,然后10进制转2进制就可以了。
比如:
String hex ="1A";
Integer num = Integer.parseInt(hex,16);//把16进制转换为10进制
String binary = Integer.toBinaryString(num);//把10进制转换为2进制
System.out.println(binary);//输出结果为11010