Výpis binární hodnoty čísla (jazyk C)

Trochu jsem si hrál s binárním výpisem číselné hodnoty v C, a vyšel mi tenhle prográmek. Potřeboval jsem si něco ověřit ohledně binárních čísel, a tak jsem napsal tohle. Není moc velký, ani převratný, ani originální, ale občas se může hodit mít tenhle algoritmus po ruce. Vezme totiž jakoukoli hodnotu  typu int a vypíše ji v binární podobě. I záporná čísla, bez ohledu na to s kolika bitovým intem pracuje počítač.
Výpis programu vypadá takhle:

binary

#include <stdio.h>
#include <limits.h>

#define INT_BITU (sizeof(int)* 8)

void printBinary(int x)
{
    unsigned int binaryValue[INT_BITU];
    int i, tmp = 1;

    for (i = 0; i < INT_BITU; i++)
    {
        binaryValue[i] = x & tmp ? 1 : 0;
        tmp <<= 1;
    }

    printf("%12d = ", x);
    for (i = INT_BITU - 1; i >= 0 ; i--)
        printf("%u", binaryValue[i]);
    printf("\n");
}

int main(int argc, const char * argv[])
{
    printf("int ma na tomto pocitaci %d bitu\n", (int)(INT_BITU));

    printf("MAX INT:\n");
    printBinary(INT_MAX);

    printf("MIN INT:\n");
    printBinary(INT_MIN);

    printBinary(7);
    printBinary(120);
    printBinary(-15);

    return 0;
}
Příspěvek byl publikován v rubrice Programování se štítky , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.