package _interface;
/**
* 将一个16进制的数转化为整数
*
* @author hskd
*
*/
public class IntDemo {
public static void main(String[] args) {
/*
* 测试16进制转化n进制
*/
System.out.println("3cef转化为10进制之后:" + change(16, 10, "3cef"));
System.out.println("3cef转化为2进制之后:" + change(16, 2, "3cef"));
System.out.println("3cef转化为2进制之后:" + change(16, 8, "3cef"));
/*
* 测试10进制转化n进制
*/
System.out.println("15转化为16进制之后:" + change(10, 16, "15"));
System.out.println("3转化为2进制之后:" + change(10, 2, "3"));
System.out.println("8转化为8进制之后:" + change(10, 8, "8"));
/*
* 测试2进制转化为n进制
*/
System.out.println("11110011101111转化为16进制之后:"
+ change(2, 16, "11110011101111"));
System.out.println("11110011101111转化为10进制之后:"
+ change(2, 10, "11110011101111"));
System.out.println("11110011101111转化为8进制之后:"
+ change(2, 8, "11110011101111"));
}
/**
* 工具类
*
* @param radix1
* 需要转化的数据的进制
* @param radix2
* 需要将该数据转化为什么进制
* @param str
* 需要转化为内容
* @return
*/
public static Object change(int radix1, int radix2, String str) {
switch (radix1) {
case 10:// 10进制转化为其他进制
if (radix2 == 2) {// 10进制转化为2进制
return Integer.toBinaryString(Integer.parseInt(str));
}
if (radix2 == 8) {// 10进制转化为8进制
return Integer.toOctalString(Integer.parseInt(str));
}
if (radix2 == 16) {// 16进制转化为2进制
return Integer.toHexString(Integer.parseInt(str));
}
break;
case 16:// 16进制转化为其他进制
if (radix2 == 10) {
return Integer.valueOf(str, radix1).toString();
}
if (radix2 == 8) {// 16进制转化为8进制
return Integer.toOctalString(Integer.valueOf(str, 16));
}
if (radix2 == 2) {// 16进制转化为2进制
return Integer.toBinaryString(Integer.valueOf(str, radix1));
}
break;
case 2:// 2进制转化为其他进制
if (radix2 == 10) {
return Integer.valueOf(str, radix1).toString();
}
if (radix2 == 8) {// 16进制转化为8进制
return Integer.toOctalString(Integer.parseInt(str, radix1));
}
if (radix2 == 16) {// 2进制转化为16进制
return Integer.toHexString(Integer.parseInt(str, radix1));
}
break;
default:
break;
}
return null;
}
}
|