#include <stdio.h> #include <stdint.h> void print_binary(uint16_t val) { // Your logic here union { uint16_t val; uint8_t bytes[2]; } val_fields; val_fields.val = val; uint8_t len = 8; uint16_t mask = 0x0080; if (val_fields.bytes[1] != 0x00) { mask = 0x8000; len = 16; } for (int i = 0; i < len; i++) { printf("%d", (val & mask) ? 1 : 0); mask >>= 1; } } int main() { uint16_t val; scanf("%hu", &val); print_binary(val); return 0; }
Test Cases
Test Results
Input
10
Expected Output
00001010