Print Binary Representation of an 8-bit or 16-bit Value

Code

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

void print_binary(uint16_t val) {
    // Your logic here
    int num_bits = val > 255 ? 16 : 8;
    int arr[num_bits] = {0};
    for(int i=0;i<num_bits;i++)
    {
        if((val & 1) == 1)
            arr[i] = 1;
        val = val >> 1;
        if(val == 0)
            break;        
    }
    for(int i=num_bits-1;i>=0;i--)
        printf("%d",arr[i]);
    
}

int main() {
    uint16_t val;
    scanf("%hu", &val);
    print_binary(val);
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

10

Expected Output

00001010