用c语言实现16进制转2进制代码
时间: 2023-09-25 18:16:09 浏览: 109
c语言中十六进制转二进制显示的实现方法
以下是用 C 语言实现 16 进制转 2 进制的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char hex[17], bin[65] = "";
int i = 0;
printf("请输入一个16进制数:");
scanf("%s", hex);
while (hex[i]) {
switch (hex[i]) {
case '0': strcat(bin, "0000"); break;
case '1': strcat(bin, "0001"); break;
case '2': strcat(bin, "0010"); break;
case '3': strcat(bin, "0011"); break;
case '4': strcat(bin, "0100"); break;
case '5': strcat(bin, "0101"); break;
case '6': strcat(bin, "0110"); break;
case '7': strcat(bin, "0111"); break;
case '8': strcat(bin, "1000"); break;
case '9': strcat(bin, "1001"); break;
case 'A': strcat(bin, "1010"); break;
case 'B': strcat(bin, "1011"); break;
case 'C': strcat(bin, "1100"); break;
case 'D': strcat(bin, "1101"); break;
case 'E': strcat(bin, "1110"); break;
case 'F': strcat(bin, "1111"); break;
case 'a': strcat(bin, "1010"); break;
case 'b': strcat(bin, "1011"); break;
case 'c': strcat(bin, "1100"); break;
case 'd': strcat(bin, "1101"); break;
case 'e': strcat(bin, "1110"); break;
case 'f': strcat(bin, "1111"); break;
default: printf("输入的不是16进制数。\n"); return 1;
}
i++;
}
printf("转换后的二进制数为:%s\n", bin);
return 0;
}
```
该程序首先要求用户输入一个 16 进制数,然后将其转换为对应的 2 进制数,并输出结果。其中,使用了 `switch` 语句将每个 16 进制数转换为对应的 4 位 2 进制数,最后使用 `strcat` 函数将各个 4 位 2 进制数拼接起来,得到最终的 2 进制数。如果用户输入的不是 16 进制数,则程序会输出一条错误信息并退出。
阅读全文