二进制到十进制的公式

时间:2016-03-29 23:38:40

标签: c

我试图编写一个程序来将二进制输入更改为十进制,我在另一个网站上看到了这段代码,但我不明白这段代码中的公式是如何将二进制更改为十进制的。< / p>

#include <stdio.h>

int main() {

    long int binaryNumber, decimalNumber = 0, j = 1, remainder;

    printf("Enter any binary number: ");
    scanf("%ld", &binaryNumber);

    while (binaryNumber != 0) {
         remainder = binaryNumber % 10;
        decimalNumber = decimalNumber + remainder * j;
        j = j * 2;
        binaryNumber = binaryNumber / 10;
    }

    printf("Equivalent decimal value: %ld", decimalNumber);

    return 0;
}

1 个答案:

答案 0 :(得分:1)

此代码使用模数运算从输入的二进制数的右侧选择1或0,并将其存储在remainder中。然后将存储在remainder中的每个1或0乘以它所代表的值,由j表示,然后添加到decimalNumber。然后将二进制数除以10以将所有数字向右移位。重复此过程,直到二进制数中不再有1个。