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