最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是十进制、十六进制、二进制转换。
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())));}
}
运行结果如下: