不经意间看到网上的一些进制转换算法,发现很多的代码凌乱程度不忍直视。这里贴一下自己以前写的代码,希望对你有所帮助。
注:以下代码其实是一个逻辑,换个参数而已,且均未考虑负数的情况
转二进制(未考虑负数)
public static String toBinaryString(int num) {
StringBuilder res = new StringBuilder();
if (num >= 2) {
do {
res.insert(0, num % 2);
} while ((num /= 2) > 1);
res.insert(0, num);
} else {
res.append(num);
}
return res.toString();
}
转八进制(未考虑负数)
public static String toOctalString(int num) {
StringBuilder res = new StringBuilder();
if (num >= 8) {
do {
res.insert(0, num % 8);
} while ((num /= 8) > 7);
res.insert(0, num);
} else {
res.append(num);
}
return res.toString();
}
转其它进制(未考虑负数)
radix为转换后的进制,最小为2,最大为10,若为十进制以上,要加字母表映射
radix为转换后的进制,最小为2,最大为10,若为十进制以上,要加字母表映射
radix为转换后的进制,最小为2,最大为10,若为十进制以上,要加字母表映射
重要的话说三遍!!!
// 注意 若为十进制以上 要加字母表映射
// 注意 若为十进制以上 要加字母表映射
// 注意 若为十进制以上 要加字母表映射
public static String toOtherRadixString(int num, int radix) {
StringBuilder res = new StringBuilder();
if (num >= radix) {
do {
res.insert(0, num % radix);
} while ((num /= radix) > radix - 1);
res.insert(0, num);
} else {
res.append(num);
}
return res.toString();
}
本文分享了一种简洁高效的进制转换算法,包括二进制、八进制及任意进制转换,适用于正数的场景。通过示例代码,深入解析了转换逻辑,帮助读者理解和实现不同进制之间的转换。

被折叠的 条评论
为什么被折叠?



