📜  二进制转十进制 - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:36:04.164000             🧑  作者: Mango

二进制转十进制 - C 编程语言

在计算机科学中,二进制是一种重要的数字系统,而十进制是我们最熟悉的数字系统。在程序开发中,我们经常需要将二进制数转换成十进制数。在 C 语言中,我们可以通过以下方式来实现这一目的。

二进制转十进制的方法

方法1:使用 pow 函数

#include <stdio.h>
#include <math.h>

int binaryToDecimal(long long n);

int main() {
    long long n;
    printf("请输入一个二进制数:");
    scanf("%lld", &n);
    printf("%lld 的十进制表示为 %d\n", n, binaryToDecimal(n));
    return 0;
}

int binaryToDecimal(long long n) {
    int decimalNumber = 0, i = 0, remainder;
    while (n != 0) {
        remainder = n % 10;
        n /= 10;
        decimalNumber += remainder * pow(2, i);
        ++i;
    }
    return decimalNumber;
}

在这个方法中,我们使用了 math.h 中的 pow 函数来计算 2 的幂。该函数的功能是计算一个数的指定次幂。该函数的原型如下:

double pow(double x, double y);

其中 x 为底数,y 为指数。该函数返回 x 的 y 次幂的值。

方法2:使用位运算符

#include <stdio.h>

int binaryToDecimal(long long n);

int main() {
    long long n;
    printf("请输入一个二进制数:");
    scanf("%lld", &n);
    printf("%lld 的十进制表示为 %d\n", n, binaryToDecimal(n));
    return 0;
}

int binaryToDecimal(long long n) {
    int decimalNumber = 0, remainder, i = 0;
    while (n != 0) {
        remainder = n % 10;
        n /= 10;
        decimalNumber += remainder << i;  // 位运算符代替 pow 函数
        ++i;
    }
    return decimalNumber;
}

在这个方法中,我们使用了位运算符来代替 pow 函数。其中 "<<" 代表左移操作符,它将二进制数左移指定位数。例如,十进制数 2 在二进制中为 10,将其左移一位后即为 100,十进制数为 4。

总结

通过以上两种方法,我们可以轻松地将二进制数转换为十进制数。其中,方法1 在处理较大的二进制数时会变得比较缓慢,而方法2 更为简单高效,容易理解和实现。