码迷,mamicode.com
首页 > 其他好文 > 详细

自制进制转换终极版

时间:2016-04-30 22:14:12      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

/**
 *    自制进制转换终极版
 *    过程不重复了.
 */
public class TransFinal {

    public static void main(String[] args) {
        int num = 26;

        String hex = toHex(num);
        String oct = toOct(num);
        String bin = toBin(num);
        System.out.println("十六进制: "+ hex);
        System.out.println("八进制: "+ oct);
        System.out.println("二进制: "+ bin);

    }

    /**
     * 给定一个整数转换二进制的方法
     * @param num    给定的整数
     * @return str  返回该数字的二进制写法
     */
    public static String toBin(int num) {
        String str = toTrans(num,1,1);
        return str;
    }

    /**
     * 给定一个整数转换八进制的方法
     * @param num    给定的整数
     * @return str  返回该数字的八进制写法
     */
    public static String toOct(int num) {
        String str = toTrans(num,7,2);
        return "0"+str;
    }

    /**
     * 给定一个整数转换十六进制的方法
     * @param num    给定的整数
     * @return str  返回该数字的十六进制写法
     */
    public static String toHex(int num) {
        String str = toTrans(num,15,4);
        return "0x"+str;
    }

    /**    
     * 转换给定的数字
     * @param num        给定的数字
     * @param base        给定的基数
     * @param offset    给定的偏移量
     * @return str        返回指定的进制表现形式
     */
    public static String toTrans(int num, int base, int offset) {
        StringBuilder returnStr = new StringBuilder();
        char[] chs = {‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘};
        while (num != 0){
            int temp = num & base;
            returnStr.insert(0, chs[temp]);
            num = num >>> offset;
        }

        return returnStr.toString();
    }
}

 

自制进制转换终极版

标签:

原文地址:http://www.cnblogs.com/zyjcxc/p/5449529.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!