#include <iostream>
//1-ый вариант
unsigned int bin_to_dec1(const char* b){
unsigned int i, d, k = 0, n = 0;
const char* p;
for(p = b; *p; ++p)
;
if(p > b)
--p;
while(p >= b){
for(d = 1, i = 0; i < k; ++i)
d *= 2;
n += (unsigned int)((*p--) - '0') * d;
++k;
}
return n;
}
//2-ой вариант
unsigned int bin_to_dec2(const char* b){
unsigned int n = 0;
while(*b)
n = (n << 1) | (unsigned int)((*b++) - '0');
return n;
}
int main(void){
std::cout << bin_to_dec1("1011100011101") << std::endl;
std::cout << bin_to_dec2("1000110111011") << std::endl;
return 0;
}