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;
+}