十六进制转换二进制c语言代码
时间: 2024-10-09 21:00:20 浏览: 30
c语言中十六进制转二进制显示的实现方法
十六进制转二进制的C语言代码可以使用循环和位操作来实现。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 将十六进制字符转换为对应的二进制值
unsigned int hex_to_binary(char hex_char) {
if (hex_char >= '0' && hex_char <= '9') {
return hex_char - '0';
} else if (hex_char >= 'A' && hex_char <= 'F') {
return hex_char - 'A' + 10;
} else if (hex_char >= 'a' && hex_char <= 'f') {
return hex_char - 'a' + 10;
}
// 如果输入的不是有效的十六进制字符,返回0
return 0;
}
// 整体函数将十六进制字符串转换为二进制字符串
void hex_to_binary_string(const char *hex_str, char *binary_str) {
unsigned int binary_num = 0;
for (int i = 0; hex_str[i]; i++) {
binary_num <<= 4; // 左移4位,为下一个十六进制字符留出空间
binary_num |= hex_to_binary(hex_str[i]);
}
// 反向填充0,因为原始字符串从右到左读取
int j = strlen(hex_str);
while (j--) {
binary_str[j] = static_cast<char>((binary_num & 0xF0000000) >> 24); // 右移并取低四位
binary_num <<= 8;
}
binary_str[j] = '\0'; // 添加结束符
}
int main() {
char hex[] = "1A";
char binary[32];
hex_to_binary_string(hex, binary);
printf("Hexadecimal %s is equivalent to binary %s\n", hex, binary);
return 0;
}
阅读全文