我正在尝试编写一个程序将二进制输入更改为十进制,我在另一个网站上看到了这段代码,但我不明白此代码中的公式如何将二进制输入更改为十进制。
#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 或 0 乘以它所表示的值(用 j
表示),然后添加到 decimalNumber
中。然后将二进制数除以 10,将所有数字右移。如此重复,直到二进制数中不再有 1。
关于c - 二进制转十进制的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36297041/