convertstrtonum20250815.c

/* (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;
}