C语言16进制转2进制的程序
时间: 2023-09-08 21:11:36 浏览: 155
下面是一个C语言的程序,用于将16进制数转换为2进制数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char hex_num[10], bin_num[40] = "";
int dec_num, i, j = 0;
printf("请输入一个16进制数:");
scanf("%s", hex_num);
dec_num = (int)strtol(hex_num, NULL, 16);
while (dec_num != 0) {
int remainder = dec_num % 2;
dec_num /= 2;
char remainder_str[2];
sprintf(remainder_str, "%d", remainder);
strcat(bin_num, remainder_str);
j++;
}
printf("转换为2进制数为:");
for (i = j - 1; i >= 0; i--) {
printf("%c", bin_num[i]);
}
printf("\n");
return 0;
}
```
程序首先让用户输入一个16进制数,然后使用`strtol()`函数将其转换为10进制数。接着,程序通过不断地除以2,得出16进制数对应的2进制数,并将每一位的余数存储在一个字符数组中。最后,程序将字符数组中的元素倒序输出,即为16进制数对应的2进制数。
例如,如果用户输入`3F`,程序将输出:
```
请输入一个16进制数:3F
转换为2进制数为:111111
```
希望对你有所帮助!
阅读全文