十进制转为二进制/八进制/十六进制_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 十进制转为二进制/八进制/十六进制

十进制转为二进制/八进制/十六进制

 2013/10/24 0:53:05  天使的左手  程序员俱乐部  我要评论(0)
  • 摘要:privatestaticfinalchar[]chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};publicstaticStringtoHexString(intx){returnconvert(x,4);}publicstaticStringtoOctalString(intx){returnconvert(x,3);}publicstaticStringtoBinaryString(intx)
  • 标签: 二进制
class="java" name="code">
private static final char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7',
			'8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

	public static String toHexString(int x) {
		return convert(x, 4);
	}

	public static String toOctalString(int x) {
		return convert(x, 3);
	}

	public static String toBinaryString(int x) {
		return convert(x, 1);
	}

	private static String convert(int x, int shift) {
		int mask = (1 << shift) - 1;
		char[] result = new char[32];
		int pos = 32;

		do {
			result[--pos] = chs[x & mask];
			x >>>= shift;
		} while (x != 0);

		// 起始偏移位置:pos表示当前索引位置
		// 偏移数:32-pos表示最后一位索引位置-当前索引位置+1,即总长度-当前索引位置
		return new String(result, pos, 32 - pos);
	}


测试
		System.out.println(toBinaryString(-23423));
		System.out.println(Integer.toBinaryString(-23423));

		System.out.println(toOctalString(21321));
		System.out.println(Integer.toOctalString(21321));

		System.out.println(toHexString(21321));
		System.out.println(Integer.toHexString(21321));
上一篇: java读取properties文件 下一篇: 没有下一篇了!
发表评论
用户名: 匿名