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

Back To All Submissions
Previous Submission
Next Submission

Code

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

void print_binary_with_arr(uint16_t val)
{
     uint8_t arr[16]={0};
    uint16_t val_tmp = val;
    for(uint8_t j = 0; j <16 ;j++) 
        {
            printf("%c",arr[j]);
        }
    uint8_t i= 15;
    while(val)
    {
       arr[i] = val %2;
      // printf("");
       val/=2;  
       i--; 
    }
    if(val_tmp <= 255)
    {
        for(uint8_t j = 8; j <16 ;j++) 
        {
            printf("%d",arr[j]);
        }
    }
    else
    {
        for(uint8_t j=0; j <16 ;j++)
        {
            printf("%d",arr[j]);
        }
    }
}

void print_binary(uint16_t val) {
    // Your logic here
    //create mask
    uint8_t bits = val <= 255? 8:16;
    uint16_t mask = (uint16_t)(1 <<(bits - 1));
    for(uint8_t i =0; i < bits;i++)
    {
        if(mask & val)
        {
            printf("1");
        }
        else
        {
           printf("0");
        }
        mask >>=1;
    }

}

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

Solving Approach

 

 

 

Was this helpful?
Upvote
Downvote