qfedu-c-level/day5/homework/h16.c

23 lines
756 B
C

// 【扩展题】请编程,键盘输入一个二进制数的字符串,输出转不同进制的数值
// 【提示】char m[32] = "";
#include <stdio.h>
int main()
{
char m[32] = ""; // 用于存储二进制数的字符串
printf("请输入一个二进制数的字符串:");
scanf("%s", m);
int i = 0;
int size = sizeof(m) / sizeof(m[0]); // 数组的大小
int sum = 0; // 用于存储转换后的十进制数
while (i < size && m[i] != '\0')
{
sum = sum * 2 + m[i] - '0'; // 每次会将高位的结果再次乘 2
i++;
}
printf("十进制数为: %d\n", sum);
printf("八进制数为: 0%o\n", sum);
printf("十六进制数为: 0x%hhx\n", sum);
return 0;
}