Java十进制转二、八、十六进制方法
本文代码总结了十进制转二进制、八进制、十六进制的方法。
注意:输入参数不支持负数。
目录
一、十进制转二进制
(1)使用系统函数
Integer.toBinaryString(n)
(2)不使用系统函数
/**
* 十进制转二进制
*
* @param n
* @return
*/
public static String tobin(int n) {
if (n == 0)
return "0";
String bin = "";
while (n != 0) {
bin = n % 2 + bin;
n = n / 2;
}
return bin;
}
二、十进制转八进制
(1)使用系统函数
Integer.toOctalString(n)
(2)不使用系统函数
/**
* 十进制转八进制
*
* @param n
* @return
*/
public static String octal(int n) {
if (n == 0)
return "0";
StringBuilder o = new StringBuilder();
while (n > 0) {
o.append(n % 8);
n = n / 8;
}
return o.reverse().toString();
}
三、十进制转十六进制
(1)使用系统函数
Integer.toHexString(n)
(2)不使用系统函数
/**
* 十进制转十六进制
*
* @param n
* @return
*/
public static String tohex(int n) {
String hexStr = "";
long decAbs = Math.abs(n);
while (decAbs > 0) {
long lastFour = decAbs & 15;
if (lastFour > 9) {
hexStr = (char) ('A' + lastFour - 10) + hexStr;
} else {
hexStr = lastFour + hexStr;
}
decAbs >>= 4;
}
hexStr = n < 0 ? "-" + hexStr : n == 0 ? "0" : hexStr;
return hexStr;
}
四、程序输出结果
public static void main(String[] args) {
System.out.println("十进制\t二进制\t八进制\t十六进制");
for (int n = 0; n <= 16; n++) {
String bin = tobin(n);
String oct = octal(n);
String hex = tohex(n);
System.out.println(String.format("%s\t%s\t%s\t%s\t", n, bin, oct, hex));
}
}