C语言将二进制转换为十进制的程序

用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;
}
C Program to Convert Binary To Decimal 1

二进制 = 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