Hello,
I have a program assignment that is supposed to that converts decimal numbers to binary, hexadecimal, and BCD. I am having an issue with keep the leading zeros on the binary. I have used a recursive function to output a binary conversion.
#include <iostream>
#include <iomanip>
using namespace std;
const int MAX=255;
void binary(int);
int main (){
int number;
number=0;
cout<<"DECIMAL BINARY HEXADECIMAL BCD"<<endl;
for (int i=0;i<=MAX;i++){
cout<<number<<" ";
if (number<=9){
cout<<" "; }
else if (number>9&&number<=99){
cout<<" "; }
binary(number);
number++;
cout<<endl;
}
system ("pause");
return 0;
}
void binary(int number){
int r;
if (number<=0){
cout<<number;
return;
}
r=number%2;
binary(number>>1);
cout<<r;
}
The output should look like:
DECIMAL _______ BINARY
0 _____________ 00000000
1 _____________ 00000001
2 _____________ 00000010
. _____________ .
. _____________ .
255 ___________ 11111111
However it shows as:
DECIMAL _______ BINARY
0 _____________ 0
1 _____________ 1
2 _____________ 10
. _____________ .
. _____________ .
255 ___________ 11111111
NOTE: The underscores represent a space and the forum eliminates unnecessary white space
I tried using
setfill('0')<<setw(8)
within the function but that adds zeros after each digit rather then the whole number. Is there a way to use these manipulators on the function as a whole like
binary(number).setfill('0').setw(8)
? Or is this completely off base?
Thanks In Advance!