/* (C) David Vajda
* 2025-08-15
* Converting ASCII String of Number 2 Binary Integer */
#include <stdio.h>
int main (void) {
//char *NumStr = "12453";
char *NumStr = "27318";
char *p;
unsigned char bcdnums [5];
int i;
int l;
/* convert String of numbers to unsigned bcd */
for (i = 0, p = NumStr; *p != 0; p++, i++)
bcdnums [i] = (*p) - '0';
l = i;
/* quotient q
* remainder r
* mask 0b0001 0000*/
int q;
int r;
int v;
// unsigned char m = 0x10;
int bit = 0;
int sum;
int intnum = 0;
do {
r = 0;
sum = 0;
for (i = 0; i < l -1; i++) {
bcdnums [i] = bcdnums [i] | (r << 4);
q = bcdnums [i] / 2;
r = bcdnums [i] % 2;
bcdnums [i] = q;
sum = sum + bcdnums [i];
}
bcdnums [i] = bcdnums [i] | (r << 4);
q = bcdnums [i] / 2;
r = bcdnums [i] % 2;
bcdnums [i] = q;
intnum = intnum | (r << bit);
sum = sum + bcdnums [i];
bit++;
} while (sum != 0);
printf ("%i %i\n", intnum, 1 << 4);
return 0;
}