C语言二进制转十进制的技巧性方法

简单的十进制与二进制之间的转化就不说了,大家应该都懂,网上也有很多的类似的文章,自己都可以搜到,今天想说的是一种新方法,或许大神们已经知道,但是我还不是很了解,想记录一下这个巧方法。很简洁但很巧妙的方法。

int readint(int a)  //a 是传入二进制位数
{  
    int sum = 0;   
    while (a--) {
        sum *=2;
        sum += getchar() - '0';  // getchar 读入相应十进制的每一位 
    }
    return sum;  // sum 是相应的十进制
}

原理:
x1 + x2*2 + x3*2^2 + x4*2^3
每次提取一个2 得到:
x1 + 2(x2+2(x3+2×4))
像这样每次提取个 2 ,就可以看到原理了

这个方法挺简单但有一定技巧性

    原文作者:进制转换
    原文地址: https://blog.csdn.net/wuli_dear_wang/article/details/78035112
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞