// 【扩展题】请编程,键盘输入一个二进制数的字符串,输出转不同进制的数值 // 【提示】char m[32] = ""; #include 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; }