| Days | |
| Hours | |
| Minutes | |
| Seconds |
A while back I used a function I found on the web to print off a binary representation of a number while I was working on a blowfish implementation in C++. I haven’t finished the blowfish, but I made some changes to the binary function, and thought I’d post it since it is a handy thing to have.
Essentially all I did was set it so it grouped the digits by 4 and padded out the MSB set with 0’s so they all line up.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | void binary(int number,int count=0) { int remainder; count++; if(number <= 1) { while(count % 4 != 0) { cout << '0'; count++; } cout << number; return; } remainder = number%2; binary(number >> 1, count); if(count % 4 == 0) cout << ' '; cout << remainder; } |
Here’s an example program, and the results.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <iostream> using namespace std; void binary(int number,int count=0) { ... } int main () { binary(0); cout << endl; binary(0xFF); cout << endl; binary(9872); cout << endl; } |
jmhobbs@lizzy$ ./a.out 0000 1111 1111 0010 0110 1001 0000 jmhobbs@lizzy$