Convert Binary String to Integer Without strtol function or Libraries

Code

#include <stdio.h>
#include <stdint.h>

uint16_t binary_to_uint(const char *str) {
    // Your logic here
    int i = 1;
    int re_vl = 0;
    int count = 0;
    while (*str)
    {
        ++count;
        ++str;
    }
    --str;
    while (count--)
    {
        // printf("%c", *str);
        if(*str == '1'){
            re_vl += i;
            i *= 2;
        }
        else{
            i *= 2;
        }
        // printf("-%d\n", re_vl);
        --str;
    }
    
    return re_vl;
}

int main() {
    char bin[20];
    scanf("%s", bin);

    printf("%u", binary_to_uint(bin));
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

1010

Expected Output

10