最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是十进制、十六进制、二进制转换。
1、十进制转十六进制、二进制
调用java自带的api,测试十进制转16进制、2进制
package com.kangning.common.utils.reflect;
/**
* 十进制 转 十六进制
* 十进制 转 二进制
*/
public class DecimalConversionTest {
public static void main(String[] args) {
System.out.println("十进制10 转16进制 为:"+Integer.toHexString(10));
System.out.println("十进制10 转2进制 为:"+Integer.toBinaryString(10));
}
}
运行结果如下:
2、十进制字符串 转16进制、转2进制
package com.kangning.common.utils.reflect;
/**
* 十进制字符串转 16进制、转2进制
*/
public class DecimalConvertTest {
public static void main(String[] args) {
System.out.println("字符串10转16进制:"+Integer.toHexString(Integer.parseInt("10")));
System.out.println("字符串10转2进制:"+Integer.toBinaryString(Integer.parseInt("10")));
}
}
运行结果如下
3、十六进制 转 二进制、十进制
import java.math.BigInteger;
/**
* 十六进制 转 二进制、十进制
*/
public class DecimalConversionTest3 {
public static void main(String[] args) {
String h = "10000";
//转为16进制
BigInteger srch = new BigInteger(h,16);
System.out.println("十六进制字符串10000 转为 10进制后为:"+srch.toString());
System.out.println("十六进制字符串10000 转为 2进制后为:"+Integer.toBinaryString(Integer.parseInt(srch.toString())));
}
}
运行结果如下:
4、二进制 转十进制、转 十六进制
package com.kangning.common.utils.reflect;
import java.math.BigInteger;
/**
* 将二进制 转十进制 、十六进制
*/
public class DecimalConversionTest4 {
public static void main(String[] args) {
String b = "10000";
//参数二表示二进制,参数一表示要转换的值
BigInteger srcb = new BigInteger(b,2);
System.out.println("二进制字符串10000 转换为十进制后为:" + srcb);
System.out.println("二进制字符串10000转换为十六进制后为:"+Integer.toHexString(Integer.parseInt(srcb.toString())));
}
}
运行结果如下: