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) {
    int str_len = 0; 
    while (str[str_len] != '\0')
    {
        str_len++; 
    }

    uint16_t res = 0; 

    for (int j = 0; j < str_len; j++)
    {
        if (str[j] == '1')
        {
            res += (1 << (str_len - 1 - j));
        }
    }

    return res;

/*
input: 0b1010
str_len = 4
res = 8
output: 10

*/
}

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