summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/bin.c b/bin.c
new file mode 100644
index 0000000..dca7f5e
--- /dev/null
+++ b/bin.c
@@ -0,0 +1,21 @@
+printu32(unsigned int n) {
+ int i;
+ printf("%u = 0x%08x\n", n, n);
+ printf(" 28 24 20 16 12 8 4 0\n");
+ for(i = 31; i>=0; i--) {
+ printf("%d", !!(n&(1<<i)));
+ if(!(i%4)) printf(" ");
+ if(!(i%8)) printf(" ");
+ }
+ printf("\n");
+}
+printu32_long(unsigned int n) {
+ int i;
+ printf("%u = 0x%08x\n", n, n);
+ printf("|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15"
+ "|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0\n");
+ for(i = 31; i>=0; i--) printf("| %d", !!(n&(1<<i)));
+ printf("\n");
+}
+
+main(int argc, char* argv[]) { printu32_long(strtoul(argv[1], 0, 0));}