Перевод из двоичной в десятичную (большие числа представленные строкой)

Попытался реализовать вот отсюда алгоритм: https://stackoverflow.com/questions/5246976/binary-string-to-decimal-string

void binaryToString(char *binaryFull, char *decimalString) {
    int zeroCounter = 0;
    while (binaryFull[zeroCounter] == '0') {
        zeroCounter++;
    }
    while (binaryFull[0] != '\0') {
        int R = 0;
        char binaryStack[110] = "";
        for (int i = 0; i < strlen(binaryFull) - zeroCounter; i++) {
            R = 2*R + i;
            if (R >= 10) {
                binaryStack[i] = '1';
                R -= 10;
            } else {
                binaryStack[i] = '0';
            }
        }
        
        binaryStack[strlen(binaryFull) -  zeroCounter] = '\0';
        printf("%s\n", binaryStack);
        int j = 0;
        while (binaryStack[j] == '0') {
            j++;
        }
        for (int i = 0, k = j; i < strlen(binaryStack) - j; i++, k++) {
            binaryFull[i] = binaryStack[k];
        }
        binaryFull[strlen(binaryStack) - j] = '\0';
        
    }
}

Но не получается. R, как я понимаю, должна быть очередная десятичная цифра получающегося числа? Но вот не понимаю, что за "b in bits of X". b это длина строки, или что-то другое?


Ответы (0 шт):