getbits.c
changeset 130 f4b424b93e45
child 132 54a04f5f141d
new file mode 100644
--- /dev/null
+++ b/getbits.c
@@ -0,0 +1,44 @@
+/**
+ * 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;
+}