标签:
/** * 自制进制转换终极版 * 过程不重复了. */ 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