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

Code

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

void print_binary(uint16_t val) {
    int arr[16]={0};
    int t=val;
    int a=0;
     int end;
    if(t<256)
    {
        end=8;
    }
    else
    {
        end=16;
    }
    while(val)
    {
    if((val& 0x1)==1)
    {
        arr[end-a-1]=1;
        a++;
    }
    else
    {
        arr[end-a-1]=0;
        a++;
    }
    val=val>>1;
    }
   

    for(int i=0;i<end;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