首页 > 其他 > 详细

自制进制转换终极版

时间:2016-04-30 22:11:56      阅读:203      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!