用while循环编写一个C程序,将二进制数转换为十进制数,并附带一个示例。此示例允许输入二进制值,并使用while循环将二进制转换为十进制。
#include <stdio.h>
int main()
{
int binary, decimal = 0, base = 1, remainder;
printf("Enter the Binary Number = ");
scanf("%d", &binary);
int temp = binary;
while(temp > 0)
{
remainder = temp % 10;
decimal = decimal + remainder * base;
temp = temp / 10;
base = base * 2;
}
printf("The Binary Value = %d\n", binary);
printf("The Decimal Value = %d\n", decimal);
return 0;
}

二进制 = 1101
while循环第一次迭代: while(1101 > 0) – True
余数 = 1101 % 10 = 1
十进制 = 0 + 1 * 1 = 1
临时变量 = 110
基数 = 1 * 2 = 2
第二次迭代: while(110 > 0) – True
余数 = 110 % 10 = 0
十进制= 1 + 0 * 2 = 1
临时变量 = 11
基数 = 2 * 2 = 4
二进制到十进制的第三次迭代: while(11 > 0) – True
余数 = 11 % 10 = 1
十进制= 1 + 1 * 4 = 5
临时变量 = 1
基数 = 4 * 2 = 8
第四次迭代: while(1 > 0) – True
余数 = 1 % 10 = 1
十进制 = 5 + 1 * 8 = 13
临时变量 = 0
基数 = 8 * 2 = 16
第五次迭代: while(0 > 0) – False。编译器退出循环,最终值为 = 13。
C语言使用for循环将二进制数转换为十进制数
#include <stdio.h>
int main()
{
int binary, decimal = 0, base = 1, remainder, temp;
printf("Enter the Binary Number = ");
scanf("%d", &binary);
for(temp = binary; temp > 0; temp = temp / 10)
{
remainder = temp % 10;
decimal = decimal + remainder * base;
base = base * 2;
}
printf("The Binary Value = %d\n", binary);
printf("The Decimal Value = %d\n", decimal);
return 0;
}
使用for循环将二进制转换为十进制的输出
Enter the Binary Number = 110110
The Binary Value = 110110
The Decimal Value = 54
在此程序中,我们创建了一个函数,并使用了一种略有不同的方法将二进制数转换为十进制数。
#include <stdio.h>
#include <math.h>
int binaryToDecimal(int binary)
{
int decimal = 0, i = 0, remainder;
while(binary != 0)
{
remainder = binary % 10;
decimal = decimal + (remainder * pow(2, i));
binary = binary / 10;
++i;
}
return decimal;
}
int main()
{
int binary, decimal;
printf("Enter the Binary Number = ");
scanf("%d", &binary);
decimal = binaryToDecimal(binary);
printf("The Binary Value = %d\n", binary);
printf("The Decimal Value = %d\n", decimal);
return 0;
}
使用函数将二进制转换为十进制的输出
Enter the Binary Number = 11110101
The Binary Value = 11110101
The Decimal Value = 245