1、十进制转换为其他进制
2、二进制转换为十进制
3、实例代码
public class BinaryConversion {
public static void main(String[] args) {
int age = 30;
System.out.println(age + "对应的十六进制为:" + Integer.toHexString(age) + "(十进制转换为其他进制)");
System.out.println(age + "对应的八进制为:" + Integer.toOctalString(age) + "(十进制转换为其他进制)");
System.out.println(age + "对应的二进制为:" + Integer.toBinaryString(age) + "(十进制转换为其他进制)");
System.out.println(age + "对应的5进制为:" + Integer.toString(age, 5) + "(十进制转换为其他进制)");
conversion(530, 9);
/**
* Integer.parseInt((String) s,(int) radix);
* 第一个参数是待转换的数字字符串;
* 第二个参数是这个待转换的数字字符串是多少进制的
* (如2进制数1110转换为10进制数:Integer.parseInt("1110", 2);)--需要知道待转换成十进制的数字是什么进制的
*/
System.out.println( Integer.toHexString(age) +"对应的十进制为:" +
Integer.parseInt(Integer.toHexString(age), 16) + "(十六进制转换为十进制)");
System.out.println(Integer.toOctalString(age) + "对应的十进制为:" +
Integer.parseInt(Integer.toOctalString(age), 8) + "(八进制转换为十进制)");
System.out.println(Integer.toBinaryString(age) +"对应的十进制为:" +
Integer.parseInt(Integer.toBinaryString(age), 2) + "(二进制转换为十进制)");
System.out.println(Integer.toString(age, 5) + "对应的十进制为:" +
Integer.parseInt(Integer.toString(age), 5) + "(五进制转换为十进制)");
}
private static char[] array = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
.toCharArray();
/**
* 自定义的10进制转换为其他进制的算法(原理就是辗转相除法)
* number为需要转换的十进制数字,binaryNum为需要转换的进制位;如将100转换为3进制的数为conversion(100, 3);
* @param number
* @param binaryNum
*/
public static void conversion(int number, int binaryNum) {
//String是不可变的,每次改变都要新建一个Strng 很浪费时间
//对字符串操作的效率比较 StringBuilder > StringBuffer > String
StringBuilder result = new StringBuilder();
System.out.print(number + "对应的" + binaryNum + "进制为:");
while(number > 0) {
result.insert(0, array[number % binaryNum]);
number /= binaryNum;
}
System.out.println( result.toString() + "(十进制转换为其他进制)");
}
}