`

基本数据类型进制转换

 
阅读更多
已经很久没有写博客了,已经有很多人不止一次的反问我:“你怎么不写博客了?”,我只好沉默!有些事情,我必须做,但我的时间总有限。有些痛,我们必须经历;有些苦,我们必须品尝。只有经历过,才有发言权!人越往上层走,社会对于你的要求就越多。尤其是在中国,人口众多,各方面压力都很大,各种竞争条件都会变得很苛刻。这是国际社会潜规则,更是中国社会的潜规则。

言归正传,整理一下我研究Java API有关进制转换的内容。

Java API没有提供完整的进制转换实现,只有浅显的由整型和长整型基本数据类型转换为二进制、八进制、十六进制字符串,以及将字符串反转为整型或长整型数据。
我们来看一下相关测试代码:
	private int i = 2010;

	@Test
	public void testInteger() {
		System.err.println();
		System.err.println("原始数据:" + i);
		// 二进制转换
		System.err.println("==========整型——二进制转换==========");
		System.err.println("二进制:" + Integer.toBinaryString(i));
		System.err.println("十进制:"
				+ Integer.parseInt(Integer.toBinaryString(i), 2));

		// 八进制转换
		System.err.println("==========整型——八进制转换==========");
		System.err.println("八进制:" + Integer.toOctalString(i));
		System.err.println("十进制:"
				+ Integer.parseInt(Integer.toOctalString(i), 8));

		// 十六进制转换
		System.err.println("==========整型——十六进进制转换==========");
		System.err.println("十六进制:" + Integer.toHexString(i));
		System.err.println("十进制:"
				+ Integer.parseInt(Integer.toHexString(i), 16));
	}

	@Test
	public void testLong() {

		System.err.println();
		System.err.println("原始数据:" + i);
		// 二进制转换
		System.err.println("==========长整型——二进制转换==========");
		System.err.println("二进制:" + Long.toBinaryString(i));
		System.err.println("十进制:" + Long.parseLong(Long.toBinaryString(i), 2));

		// 八进制转换
		System.err.println("==========长整型——八进制转换==========");
		System.err.println("八进制:" + Long.toOctalString(i));
		System.err.println("十进制:" + Long.parseLong(Long.toOctalString(i), 8));

		// 十六进制转换
		System.err.println("==========长整型——十六进进制转换==========");
		System.err.println("十六进制:" + Long.toHexString(i));
		System.err.println("十进制:" + Long.parseLong(Long.toHexString(i), 16));

	}


观察控制台输出:
引用

原始数据:2010
==========整型——二进制转换==========
二进制:11111011010
十进制:2010
==========整型——八进制转换==========
八进制:3732
十进制:2010
==========整型——十六进进制转换==========
十六进制:7da
十进制:2010

原始数据:2010
==========长整型——二进制转换==========
二进制:11111011010
十进制:2010
==========长整型——八进制转换==========
八进制:3732
十进制:2010
==========长整型——十六进进制转换==========
十六进制:7da
十进制:2010

对于整型,长整型的字符串与数字之间的转换,上述方式完全可以满足需求。但是如果需要数字以其他进制转换为字节数组就没有现成的解决方案了。稍后有待研究,有具体方案后,我在整理到博客中!~

public static String toHex(byte[] digest) {
			StringBuilder sb = new StringBuilder();
			for (int i : digest) {
				sb.append(Integer.toHexString(i & 0xFF));
			}
			 
      return sb.toString();
}
5
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics