进制转换算法优化

package tan;
public class Testjz {
	public static void main(String[] args) {
		toHex(60);
		System.out.println();
		toHex(-60);
		System.out.println();
		toOctal(60);
		System.out.println();
		toBin(60);
		System.out.println();
		toBin(-60);
		toBin(0);
	}

	/**
	 * 十进制转为二进制
	 * 
	 * @param num
	 */
	public static void toBin(int num) {
		trans(num, 1, 1);
	}

	/**
	 * 十进制转为8进制
	 * 
	 * @param num
	 */
	public static void toOctal(int num) {
		trans(num, 7, 3);
	}

	/**
	 * 十进制转为十六进制
	 * 
	 * @param num
	 */
	public static void toHex(int num) {
		trans(num, 15, 4);
	}

	/**
	 * 进制转换封装函数
	 * 
	 * @param num    
	 * @param base   转换基数
	 * @param offset 偏移量
	 */
	public static void trans(int num, int base, int offset) {
		if(num==0){
			System.out.println(0);
			return;
		}
		char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
				'B', 'C', 'D', 'E', 'F' };
		char[] arr = new char[32];
		int pos = arr.length;
		while (num != 0) {
			int temp = num & base;
			arr[--pos] = chs[temp];
			num = num >>> offset;
		}
		for (int x = pos; x < arr.length; x++) {
			System.out.print(arr[x]);
		}
	}

}

你可能感兴趣的:(进制转换算法优化)