getbits.c
author Markus Bröker <mbroeker@largo.dyndns.tv>
Wed, 02 Jun 2010 00:22:32 +0200
changeset 131 b5ad49852adc
parent 130 f4b424b93e45
child 132 54a04f5f141d
permissions -rw-r--r--
check for the return values committer: Markus Bröker <mbroeker@largo.homelinux.org>

/**
 * getbits.c
 * Copyright (C) 2010 Markus Broeker
 *
 */
#include <stdio.h>
#include <limits.h>
#include <string.h>

#define BITS 64

char *getbits (unsigned long long what)
{
    static char byte[BITS + 1];

    short i = BITS;

    memset (byte, '0', BITS);

    while (what > 0) {
        byte[--i] = (what % 2) ? '1' : '0';
        what >>= 1;
    }
    byte[BITS] = '\0';

    return byte;
}

int main (void)
{
    unsigned int i;
    for (i = 1; i < 16; i++)
        printf ("%s\n", getbits (i));

    printf ("%s\n", getbits (USHRT_MAX));
    printf ("%s\n", getbits (UINT_MAX));
    printf ("%s\n", getbits (ULONG_MAX));

#ifdef ULLONG_MAX
    printf ("%s\n", getbits (ULLONG_MAX));
#endif

    return 0;
}