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

Code

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

typedef union {
    uint16_t data;
    uint8_t byte[2];
} Data_16;

void print_byte(uint8_t b){
    for(size_t i=7; i<8; i--){
        printf("%c", (b>>i) & 1? '1':'0');
    }
}

void print_binary(uint16_t val) {
    // Your logic here
    Data_16 data;
    data.data = val;
    if (data.byte[1]){
        print_byte(data.byte[1]);
    }
    print_byte(data.byte[0]);
}

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

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

10

Expected Output

00001010