23 lines
756 B
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;
|
|
} |