将字符串类型的十六进制数据转换为二进制数据,用c语言完成
时间: 2023-04-07 12:03:55 浏览: 196
Lua小程序十六进制字符串和二进制数据间的转换[借鉴].pdf
5星 · 资源好评率100%
可以使用C语言中的函数strtol()将十六进制字符串转换为长整型数,然后再使用位运算将长整型数转换为二进制数据。以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char hex_str[] = "1a2b3c4d"; // 十六进制字符串
long hex_num = strtol(hex_str, NULL, 16); // 将十六进制字符串转换为长整型数
int binary[32]; // 存储二进制数据的数组
int i = 0;
while (hex_num > 0) {
binary[i] = hex_num % 2; // 取出最低位的二进制数
hex_num /= 2; // 将长整型数右移一位
i++;
}
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]); // 输出二进制数据
}
printf("\n");
return 0;
}
```
输出结果为:
```
00011010001010110011110001001101
```
阅读全文