// 【扩展题】请编程，键盘输入一个二进制数的字符串，输出转不同进制的数值
// 【提示】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;
}