Skip to content

luc112.c

Problem Statement

Rewrite the showbits() function using the _BV macro.

Metadata

Property Detail
Author Amit Dutta amitdutta4255@gmail.com
Date 08 Feb 2026
License MIT License (See the LICENSE file for details)

Actions

Raw View on GitHub

💡 You can print or save this file by opening Raw and using your browser.

Source Code

#include <stdio.h>
#include <stdlib.h>

/* _BV(x) macro usually expands to (1 << x) */
#define _BV(x) (1 << x)

void showbits(unsigned char n);

int main()
{
    unsigned char num;

    printf("Enter an 8-bit number: ");
    scanf("%hhu", &num);

    printf("Binary representation: ");
    showbits(num);
    printf("\n");

    return 0;
}

void showbits(unsigned char n)
{
    int i;
    unsigned char mask;

    for (i = 7; i >= 0; i--)
    {
        mask = _BV(i);
        if ((n & mask) == 0)
            printf("0");
        else
            printf("1");
    }
}