getbits.c
author Markus Bröker<broeker.markus@googlemail.com>
Sun, 10 Feb 2019 13:17:01 +0100
changeset 173 374a86886bc5
parent 141 0b5befeb361e
permissions -rw-r--r--
LAST-DIGIT-BUG: INCREMENT before LF

/**
 * 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 (0));

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

    return 0;
}