Java用统一方法格式实现任意进制数的相互转换

       Java的Integer类中有一些方法可以直接处理十进制数与其他进制数的转换。自己编写方法实现任意进制数的相互转换。代码如下:

package notations;

public class MainClass
{
    public static void main(String[] args)
    {
        System.out.println(HippoTools.baseConverter(1780, 10, 18, true));
    }
}

class HippoTools
{
    /**
     * 任意进制数的相互转换。基本原理是先将原来的数转换为10进制数,再转换为新的进制数
     * @param number 原来的数
     * @param originalBase 原来的数的进制
     * @param newBase 需要转换成的进制
     * @param usingUppercaseLetters 是否返回字母全大写的字符串
     * @return 新的进制数(String类型)或“无法转换”的警告
     * @author 赵利昂
     */
    public static String baseConverter(int number, int originalBase, int newBase, boolean usingUppercaseLetters)
    {
        try
        {
            String originalNumber = Integer.toString(number);
            String newNumber = Integer.toString(Integer.valueOf(originalNumber, originalBase), newBase);
            
            return usingUppercaseLetters ? newNumber.toUpperCase() : newNumber.toLowerCase();
        }
        catch(NumberFormatException e)
        {
            return "Unable to identify: " + number + " cannot be written in base-" + originalBase + " notation.";
        }

    }
}
主方法将会打印“58G”。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值