getbits.c
author Markus Brökers <mbroeker@largo.homelinux.org>
Tue, 17 Aug 2010 18:57:57 +0200
changeset 139 cb1d3f4cf18e
parent 132 54a04f5f141d
child 140 05d42a3737a4
permissions -rw-r--r--
execve returns a value on error and this catches it

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

#define BITS 8

char *getbits (unsigned int 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;
    char *s = strdup (getbits (255));

    for (i = 240; i < 255; i++)
        printf ("%s %s %s %s (%d)\n", s, s, s, getbits (i), i);
    free (s);

    return 0;
}