Mach das doch direkt:
Code:
int Ziel = 0;
char  Inp[32] = "0001.0010.0100.1000";


int iX;
          for (iX = 0; iX < strlen(Inp); iX++)
          {
               if (Inp[iX] != '.')
               {
                       Ziel <<= 1;               // ein links
                       Ziel |= (Inp[iX] & 1);  // Null oder Eins
               }
          }
Ich hoffe, verständlich. Man müßt noch ev. checken, ob wirklich nur Nullen und Einsen im String sind etc.

Remark:
Ziel != (Inp[iX] & 1); // Null oder Eins
beruht darauf, das der Ascii-Code von "0/1" = 0x30 / 0x31 ist, d.h. ich kann das low Bit direkt übernehmen