Java 十进制转二进制/八进制/十六进制算法【简洁版】

不经意间看到网上的一些进制转换算法,发现很多的代码凌乱程度不忍直视。这里贴一下自己以前写的代码,希望对你有所帮助。
注:以下代码其实是一个逻辑,换个参数而已,且均未考虑负数的情况

转二进制(未考虑负数)

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();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值