已经很久没有写博客了,已经有很多人不止一次的反问我:“你怎么不写博客了?”,我只好沉默!有些事情,我必须做,但我的时间总有限。有些痛,我们必须经历;有些苦,我们必须品尝。只有经历过,才有发言权!人越往上层走,社会对于你的要求就越多。尤其是在中国,人口众多,各方面压力都很大,各种竞争条件都会变得很苛刻。这是国际社会潜规则,更是中国社会的潜规则。
言归正传,整理一下我研究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();
}
分享到:
相关推荐
包含ASIIC、16进制,数值,字符串互转;二进制,十六进制互转;十进制显示的十六进制格式字符串转Labview所识别的十六进制,通讯下位机必备技能。总共8个VI!
“计算机数据类型16进制值转换器”: 本程序是由于自己需要而写的(QQ:401072489), 用于各计算机数据类型与16进制的内存数据格式直接的相互转换,大家要是需要就拿去用吧: 1.数据类型 TO HEX: 选择数据类型及符号...
“计算机数据类型16进制值转换器”: 本程序是由于自己需要而写的(QQ:401072489), 用于各计算机数据类型与16进制的内存数据格式直接的相互转换,大家要是需要就拿去用吧: 1.数据类型 TO HEX: 选择数据类型及...
所以使用程序读出的都是一个16进制字符串,这时就需要自己手动根据数据类型转换成10进制自己需要的数,自已编写的一个小工具,完美实现各种数据类型16进制与10进制之间的转换,包括Byte、Word、DWord、Int、Dint、...
二进制的转换;数据类型的由来,java的进制转换,数据的类型范围,转码,补码,反码的算法
转换工具~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
该matlab程序可实现C语言的float类型十六进制转换为十进制,供大家参考。
十进制和十六进制转换成float、double数据,注意十六进制使用的时候需要鼠标右击才能粘贴,ctrl+v不行,十进制可以
可以完成单精度、双精度浮点数据与16进制的转换,10进制与16进制的转换
将十六进制转换成十进制,可实现矩阵等数据类型的转换
进制转换、数据类型、类型转换、运算符.zip
不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。 但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是: 0000 0000...
进制转换 数据类型和表达式 如果对c感兴趣的同学 可以下载下来看看
将任意基本类型转换为二进制字符串的C++代码...
数据结构中的栈类型的实现与进制转换,下载下来可以直接在vc6.0中运行
数据类型囊括了:二进制/十进制/十六进制/补码/IEEE754 float! 强大的进制转换器,你值得拥有!
C++里如何将int类型的16进制数转换成string类型[归类].pdf
可以获取textEdit上的QString类型16进制数转换为ByteArray; 输入数据错误判断及提示; CRC16校验计算公式; 计算ByteArray的crc16结果; 结果转换为QString,并且每两位数据都需要增加空格展示; 输入清除功能; ...
此段代码可以实现将各种数据类型转化为二进制,实现二进制的输出。
整型类型是将十进制转换成二进制保存在内存中,以十六进制方式显示。浮点类型并不是将一个浮点小数直接转换成二进制数保存,而是将浮点小数转换成的二进制码重新编码,再进行存储。C/C++的浮点数是有符号的。 在...