C语言char数组例如char[0]=0x38,char[0x31]……转化位16进制uint8-t数组uint[0]=0x81
时间: 2023-11-17 20:06:35 浏览: 163
ES6之 二进制数组
可以使用下面的代码实现将char数组转化为uint8_t数组:
```c
char char_array[] = {0x38, 0x31}; // char数组
int char_len = sizeof(char_array) / sizeof(char); // char数组长度
uint8_t uint_array[char_len]; // 定义uint8_t数组
for(int i=0; i<char_len; i++) {
uint_array[i] = (uint8_t)char_array[i]; // 强制类型转换
}
// 打印uint8_t数组
for(int i=0; i<char_len; i++) {
printf("%02x ", uint_array[i]);
}
```
输出结果为:
```
38 31
```
其中,`char_array`是需要转化的char数组,`char_len`是`char_array`的长度。我们定义一个`uint8_t`类型的数组`uint_array`,然后使用一个`for`循环对`char_array`进行遍历,将每一个元素转化为`uint8_t`类型,强制类型转换后存放到`uint_array`中。最后使用另一个`for`循环打印`uint_array`中的元素,即可得到转化后的结果。
阅读全文