用c++写16进制转二进制
时间: 2023-05-29 11:08:06 浏览: 351
以下是C语言代码实现16进制转二进制:
```c
#include <stdio.h>
// 将16进制字符转换为相应的二进制数值
int hexCharToBinary(char c)
{
if (c >= '0' && c <= '9') {
return c - '0';
} else if (c >= 'A' && c <= 'F') {
return c - 'A' + 10;
} else if (c >= 'a' && c <= 'f') {
return c - 'a' + 10;
} else {
return -1;
}
}
// 将16进制字符串转换为二进制字符串
void hexToBinary(char *hex, char *binary)
{
int i, j, digit;
for (i = 0, j = 0; hex[i] != '\0'; i++, j += 4) {
digit = hexCharToBinary(hex[i]);
if (digit == -1) {
printf("Error: invalid hex digit '%c'\n", hex[i]);
return;
}
binary[j] = ((digit & 8) == 8) ? '1' : '0';
binary[j+1] = ((digit & 4) == 4) ? '1' : '0';
binary[j+2] = ((digit & 2) == 2) ? '1' : '0';
binary[j+3] = ((digit & 1) == 1) ? '1' : '0';
}
binary[j] = '\0';
}
int main()
{
char hex[100], binary[100];
printf("Enter a hexadecimal number: ");
scanf("%s", hex);
hexToBinary(hex, binary);
printf("Binary equivalent: %s\n", binary);
return 0;
}
```
这个程序首先定义了一个函数 `hexCharToBinary`,用于将16进制字符转换为相应的二进制数值。然后定义了另一个函数 `hexToBinary`,用于将16进制字符串转换为二进制字符串。最后在 `main` 函数中读入一个16进制数,调用 `hexToBinary` 函数将其转换为二进制数,再输出结果。
阅读全文