#include <stdio.h> #include <stdint.h> void reverse(char *s,int k){ int start = 0; int end = k-1; while(start<end){ char temp = s[start]; s[start] = s[end]; s[end] = temp; start++; end--; } } void print_binary(uint16_t val) { int temp = val; char s[17]; int k = 0; while(val>0){ if(val&1){ s[k++] ='1'; }else{ s[k++] = '0'; } val = val>>1; } if(temp<=255){ for(int i=k;i<8;i++){ s[i] = '0'; } s[8] = '\0'; reverse(s,8); }else{ for(int i=k;i<16;i++){ s[i] = '0'; } s[16] = '\0'; reverse(s,16); } printf("%s",s); } int main() { uint16_t val; scanf("%hu", &val); print_binary(val); return 0; }
Test Cases
Test Results
Input
10
Expected Output
00001010