16进制字符串str 转byte数组
时间: 2023-06-28 08:15:10 浏览: 94
可以使用以下代码将16进制字符串转换为byte数组:
```java
public static byte[] hexStringToByteArray(String str) {
int len = str.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(str.charAt(i), 16) << 4)
+ Character.digit(str.charAt(i+1), 16));
}
return data;
}
```
其中,将每两个16进制字符转换为一个byte,然后将这些byte存储在一个byte数组中。
相关问题
16进制字符串转byte数组
可以使用Java中的`Hex`类来实现16进制字符串转byte数组的操作。具体如下所示:
```java
String hexStr = "6c6f7665206d79203173203136362e";
byte[] byteArray = Hex.decodeHex(hexStr);
```
其中,`hexStr`是要转换的16进制字符串,`byteArray`是转换后得到的byte数组。需要注意的是,使用`Hex`类必须先导入`org.apache.commons.codec.binary.Hex`包。
C语言16进制字符串转2进制数组
要将C语言中的16进制字符串转换为2进制数组,可以按照以下步骤进行:
1. 首先需要将16进制字符串按照字节来切分,可以使用类似于引用中的代码实现。
2. 然后将每个字节转换为对应的整型数值,可以使用C语言中的strtol函数实现。
3. 将每个整型数值转换为对应的二进制数组,可以使用位运算符和移位运算符实现。
下面是一个示例代码,可以将16进制字符串转换为对应的2进制数组:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void hex_to_bin(char *hex_str, int *bin_arr, int len) {
char byte[3] = {0};
char *endptr;
unsigned int res;
for(int i = 0; i < len; i += 2){
memcpy(byte, &hex_str[i], 2);
res = strtol(byte, &endptr, 16);
for(int j = 0; j < 8; j++) {
bin_arr[i/2*8+j] = (res >> (7-j)) & 0x01;
}
}
}
int main(void) {
char *hex_str