#include <stdio.h>

/* get n bits from position p, numbered from 0 (least significant) and
 * up.
 */

unsigned int getbits(unsigned int x, int p, int n)
{
    return (x >> (p + 1 - n)) & ~(~0 << n);
}

int main(int argc, char **argv)
{
    int x, i;

    if (argc != 2)
    {
	printf("Usage: getbit integer\n");
	exit(1);
    }
    
    x = atoi(argv[1]);
    for (i = 0; i < sizeof (unsigned int) * 8; i ++)
    {
	printf("%d", getbits(x, i, 1));
#if 0
	printf("%d of %d is %d\n", i, x, getbits(x, i, 1));
#endif
    }

    printf("\n^bit 0                         ^bit 31\n");
    return 0;
}
