#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;
}
Input
10
Expected Output
00001010