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  
    uint16_t num = 0;
    int i = 0;
    int length = 0;
    while(str[i++] != '\0'){
        length++;
    }
    for(int j = length; j >=0 ; j--){
        if(str[j] == '1'){
            int val = 1;
            int k = length - j;
            while(k-- > 1){
                val *= 2;
            }
            num += val;
            
        }
    }
    return num;
}

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