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+2x4))
像这样每次提取个 2 ,就可以看到原理了

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值