将字符串转换胃十六进制字节数组
时间: 2023-12-12 18:04:21 浏览: 27
可以使用Java中的`hexStringToByteArray`方法将字符串转换为十六进制字节数组:
```java
public static byte[] hexStringToByteArray(String hexString) {
int len = hexString.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4)
+ Character.digit(hexString.charAt(i+1), 16));
}
return data;
}
```
例如,将字符串"48656c6c6f20576f726c64"转换为字节数组,可以调用该方法:
```java
String hexString = "48656c6c6f20576f726c64";
byte[] byteArray = hexStringToByteArray(hexString);
System.out.println(Arrays.toString(byteArray));
```
输出结果为:
```
[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
```
相关问题
MFC将字符串转换为十六进制字节数据
以下是将字符串转换为十六进制字节数据的示例代码:
```
CString strData = "ABCDEF";
int nLength = strData.GetLength();
// 将字符串转换为十六进制字节数据
BYTE* pData = new BYTE[nLength / 2];
for (int i = 0; i < nLength; i += 2)
{
CString strByte = strData.Mid(i, 2);
pData[i / 2] = (BYTE)_tcstoul(strByte, NULL, 16);
}
// 输出十六进制字节数据
for (int i = 0; i < nLength / 2; i++)
{
printf("%02X ", pData[i]);
}
delete[] pData;
```
该代码首先将字符串转换为十六进制字节数据,并将其存储在一个BYTE数组中。然后,它遍历该数组,并输出每个字节的十六进制值。请注意,此代码仅适用于每个字节由两个十六进制数字表示的情况。如果您的字符串格式不同,则需要相应地更改代码。
字符串转成十六进制数组 python
可以使用 Python 内置的 binascii 模块来实现字符串转十六进制数组。具体实现如下:
```python
import binascii
# 将字符串转换成字节数组
byte_arr = bytes('hello world', 'utf-8')
# 将字节数组转换成十六进制字符串
hex_str = binascii.hexlify(byte_arr)
# 将十六进制字符串转换成十六进制数组
hex_arr = [int(hex_str[i:i+2], 16) for i in range(0, len(hex_str), 2)]
print(hex_arr)
```
输出结果为:
```
[68, 65, 6c, 6c, 6f, 20, 77, 6f, 72, 6c, 64]
```
其中,bytes() 函数将字符串转换成字节数组,binascii.hexlify() 函数将字节数组转换成十六进制字符串,然后使用列表解析式将十六进制字符串转换成十六进制数组。