Java实现任意进制转换

实现代码:

public class BinaryTest {
	
		//设置字符数组
		//可以添加任意不重复字符,提高能转换的进制的上限
		static char chs[] = new char[36];
		static {
			for(int i = 0; i < 10 ; i++) {
				chs[i] = (char)('0' + i);
			}
			for(int i = 10; i < chs.length; i++) {
				chs[i] = (char)('A' + (i - 10));
			}
		}
		
		/**
		 * 转换方法
		 * @param num		元数据字符串
		 * @param fromRadix	元数据的进制类型
		 * @param toRadix	目标进制类型
		 * @return
		 */
		static String transRadix(String num, int fromRadix, int toRadix) {
			int number = Integer.valueOf(num, fromRadix);
			StringBuilder sb = new StringBuilder();
			while (number != 0) {
				sb.append(chs[number%toRadix]);
				number = number / toRadix;
			}
			return sb.reverse().toString();
			
		}
		//测试
		public static void main(String[] args) {
			System.out.println(transRadix("YGL", 36, 35));
		}
	}
posted @ 2018-08-26 18:33  刑古  阅读(6785)  评论(0编辑  收藏  举报