二进制数转十进制数 C语言 数组实现
时间: 2023-10-24 07:16:43 浏览: 168
以下是C语言代码实现二进制数转换成十进制数的过程:
```
#include <stdio.h>
int main()
{
int binary[32];
int decimal = 0, i = 0, j;
long long n; // 假设输入的二进制数的位数不超过32
printf("请输入二进制数:");
scanf("%lld", &n);
while (n > 0)
{
binary[i] = n % 10;
n /= 10;
i++;
}
for (j = 0; j < i; j++)
{
decimal += binary[j] * (1 << j);
}
printf("转换为十进制数:%d\n", decimal);
return 0;
}
```
代码分析:
1.首先定义了一个长度为 32 的数组 binary 存储二进制数每一位的值,以及一个整型变量 decimal 存储转换后的十进制数。
2.接着使用 scanf() 函数获取输入的二进制数 n。
3.然后使用 while 循环将 n 每一位上的数字存储到数组 binary 中,并记录二进制数的位数 i。
4.最后使用 for 循环将二进制数转换为十进制数并存储到 decimal 中。在循环中使用了左移运算符(<<),即将数字向左移动 j 位,相当于将 2 的 j 次方乘以 binary[j]。
5.最后打印出转换后的十进制数 decimal。
注意事项:
1.以上代码中的二进制数 n 是以长整型 long long 类型存储的,因为二进制数的位数可能很大,如果使用 int 类型可能会导致溢出。
2.要理解二进制转换为十进制的原理,即每一位上的数字乘以 2 的相应次方数,然后相加。
阅读全文