char *p = "1010110001100"; int n = 0; int i = 0; for(i = 0; i < strlen(p); i++) { n = p[i]?((n<<1)+p[i]-0x30):n<<1; } printf("%d\n", n);