Time Until Wedding
Days
Hours
Minutes
Seconds
 
Navigation
 
Search
 
My Usable Projects
 
Reading...
 
Listening...
 
Random Image
DSC02941.JPG
 
Archives
 
Me. Elsewhere.
 
Feeds and Such

Google Reader or Homepage
Add to My Yahoo!
Add to Technorati Favorites!
Bookmark del.icio.us
Bookmark Furl
Bookmark Spurl
 
Darcy
 
Things I Like
Get Songbird
 
License
 
C++ Print Binary Function

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$

Posted March 19th, 2007 - Permalink
Categories: C++ - Programming - Snippets
You can leave a comment, or trackback from your own site.
 
Adjacent Posts
 
Comments