Solved
Negative Dec to Binary
Posted on 2004-08-08
Below is my program that reads decimal numbers and outputs them in binary code. Know I am trying to read negative numbers and output them in 2's complement form. For example, 8 is 0000000000001000 but -8 is 1111111111111000 in 2's complement form. How can I do this. I tried changing the <> but this did not work.
my input has these numbers 252,8,9,45,63,74 (uses these numbers for negative as well).
#include <iostream>
#include <fstream>
using namespace std;
void dectobin(int num, int base, int count = 0);
int main()
{
ifstream inFile;
inFile.open("input3.txt");
int decimalnum[6];
int base;
int i;
base = 2;
cout<<"Enter the number in decimal: "<<endl;
if(!inFile)
{
cout<<"Cannot open input file!"<<endl;
return 1;
}
else
for (i=0 ;i<6;i++) {
inFile>>decimalnum[i];
cout<<"Decimal: "<<decimalnum[i]<<" = ";
dectobin(decimalnum[i], base);
cout<< " in Binary" <<endl;
}
return 0;
}
void dectobin(int num, int base, int count)
{
if(num > 0 || count < 16)
{
dectobin(num/base, base, ++count);
cout<<num % base;
}
}