Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)。即byte用十六进制表示只占2位。
同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上。
根据以上原理,我们就可以将byte[] 数组转换为16进制字符串了,当然也可以将16进制字符串转换为byte[]数组了。
// 16进制需要的字符串数据
private static final String HEX_NUMS_STR = "0123456789ABCDEF";
/**
* 将16进制字符串转换成字节数组
*
* @param hex
* @return
*/
public static byte[] hexStringToByte(String hex) {
int len = (hex.length() / 2);
byte[] result = new byte[len];
char[] hexChars = hex.toCharArray();
for (int i = 0; i < len; i++) {
int pos = i * 2;
result[i] = (byte) (HEX_NUMS_STR.indexOf(hexChars[pos]) << 4 | HEX_NUMS_STR
.indexOf(hexChars[pos + 1]));
}
return result;
}
/**
* 将指定byte数组转换成16进制字符串
*
* @param b
* @return
*/
public static String byteToHexString(byte[] b) {
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
hexString.append(hex.toUpperCase());
}
return hexString.toString();
}
分享到:
相关推荐
byte数组、十进制、十六进制间的两两转换
(1)十进制转换为其他进制数:按位权乘以基数的N-1次方。 (2)其他进制数转换为十进制:整数部分除基数取余,小数部分乘基数取整。 四、具体转换方法 (1)十进制与二进制之间的转换: * 十进制转换为二进制:...
通过上述介绍,我们可以看出这个工具在Go开发中扮演着重要角色,帮助开发者高效地处理16进制字符串与10进制byte数组之间的转换。如果你需要进一步了解或使用这个工具,可以查看`convert-master`压缩包内的源代码。
输入string 输出byte 16进制下的转换
例如,从二进制转八进制,先将二进制转换为十进制,再由十进制转换为八进制。 在实际编程中,我们可能还需要考虑到溢出、负数、大整数等问题。对于大整数,PowerBuilder 9可能需要使用长整型(Long)或者自定义的...
所以使用程序读出的都是一个16进制字符串,这时就需要自己手动根据数据类型转换成10进制自己需要的数,自已编写的一个小工具,完美实现各种数据类型16进制与10进制之间的转换,包括Byte、Word、DWord、Int、Dint、...
在Android开发中,有时我们需要将字节数组(byte array)转换为十六进制字符串,以便于数据存储、传输或调试。这是因为字节数组是二进制数据,而十六进制字符串则是一种人类可读的表示方式。下面我们将详细讨论如何...
由C代码翻译过来的PHP CRC8算法,内有十六进制转字节数组与字节数组转十六进制,内有十六进制转byte数组与byte数组转十六进制
C#中Byte数组与汉字、十六进制字符的转换 在C#中,字符串和Byte数组之间的转换是非常常见的操作。特别是在网络传输和数据存储时,我们需要将字符串转换为Byte数组,以便进行传输和存储。但是,当我们需要处理汉字和...
标题中的“blob,将byte二进制转成pdf”指的是在IT领域中处理二进制数据(Blob)并将其转换为PDF文档的过程。Blob在计算机科学中通常代表Binary Large Object,用于存储大块非结构化的数据,如图像、音频、视频或者在...
1. **基本转换规则**:为了将一个二进制数转换为八进制数,我们通常采用每三位二进制数转换为一位八进制数的方法。这是因为2^3 = 8,即三位二进制可以恰好表示一位八进制。 - 例如: - (000)_2 = (0)_8 - (001)_2...
进制转换是编程中必不可少的基础知识,尤其是在处理数值计算和存储时。本文将深入探讨16进制与10进制浮点数之间的相互转换,以及如何在VB6(Visual Basic 6)环境中实现这一转换过程。 首先,让我们了解浮点数的...
系统自用,可把c#的对象存入txt文本或者数据库中 ,供下次直接使用,(double[,],List[]>等之类的对象)
"java基本类型与byte数组互相转换" Java基本类型是指Java语言中最基本的数据类型,包括byte、short、int、long、float、double、char、boolean等。这些基本类型在内存中以二进制形式存储,而byte数组是Java中的一种...
二进制与十进制转换PPT学习教案 一、十进制系统 十进制系统是一种基于10的数制系统,具有10个数字符号:0, 1, 2, 3, 4, 5, 6, 7, 8, 9。各位权是以10为底的幂。进位规则是逢10进1,借1当10。例如,十进制数315.76...
本话题关注的是如何在S7-200SMART中将多个字节的Byte16进制数(ASCII码值)转换为双字DWORD浮点数。这个过程对于读取或写入带有ASCII编码的数据,例如来自HMI(人机界面)或者通过串行通信接收的数据,尤其重要。 ...
包含MD5加密,同时拥有多种方式进行byte或者byte[]与16进制相互转换 三种方式: 方式一:Integer.toHexString(int) 对应的是: Integer.parseInt(String, int)或者Integer.valueOf(String, int) 方式二:位运算(& ...
在C#编程语言中,进行数字的进制转换是非常常见的操作。本文主要讲解如何在C#中实现16进制转换为10进制,以及相关的位运算知识。 首先,让我们来看看C#如何进行16进制到10进制的转换。C#提供了`Convert.ToInt32`...
在处理这些情况时,理解内存布局、数据类型和进制转换的原理是非常重要的。 了解了这些基本的转换方法后,你就可以灵活地在Linux C环境中处理十六进制数据和字符串,无论是解析日志文件、调试程序还是处理底层通信...
8位二进制转byte 二进制转十进制数 二进制转十六进制 4.byte byte转8位二进制 byte转2位十六进制 5.十进制数 十进制转二进制 十进制转十六进制 6.十六进制 十六进制转二进制 2位十六进制转byte 十六进制转...