DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   Convert Binary to Decimal and from Decimal to Binary (http://www.daniweb.com/forums/thread158657.html)

Gamergirl22 Nov 20th, 2008 6:36 pm
Convert Binary to Decimal and from Decimal to Binary
 
Hi, I have a program problem with converting decimals to binary and back again. My teacher said that the program is to be like a menu and convert decimals or binary from the user's input. This is part of my code:
#include <iostream>
#include <string>

using namespace std;

void binary(int number) {
    int remainder;
    if(number <= 1)
    cout << number;
    remainder = number % 2;
    binary(number >> 1);
    cout << remainder;
}

int main(){
   
    int number;
    int choice;
   
    cout << "1. Binary to Decimal\n";
    cout << "2. Decimal to Binary\n";
    cout << "3. Quit Program\n";
    cout << "Enter your Choice: ";
    cin >> choice;
   
    switch (choice) {
         
          case '1':
                cout << "Please enter an integer: ";
                cin >> number;
                if (number < 0)
                        cout << "Error enter positive integer: ";
                else {
                    cout << "The number in Binary is: ";
                    binary(number);
                    cout << endl;
                }


}
system("pause");
return 0;
}
I know my problem is with the binary(int number) function because it is runnable but dosen't call to the function. So, my question is how can I modify this to run correctly? Also, how would I go about reversing the code to have it convert binary to decimal?

Rhohitman Nov 20th, 2008 6:55 pm
Re: Convert Binary to Decimal and from Decimal to Binary
 
Nice thought to use the recursive function...

recursive function should have the terminating point which in the conversion always turn to 1 at last.

void binary(int num)
{
  if(num!=1)
  {
    int rem=num%2;
    binary(num/2);
    cout<<rem;
  }
  else
  cout<<num;
}

Gamergirl22 Nov 20th, 2008 9:00 pm
Re: Convert Binary to Decimal and from Decimal to Binary
 
Thanks Rohitman. So, How do I reverse it as in binary to decimal? I know it has something to do with diffrent powers of a number like 2x^i. So, do I use a for loop for that or something else?

brechtjah Nov 20th, 2008 9:12 pm
Re: Convert Binary to Decimal and from Decimal to Binary
 
1 = 1
10 = 2
100 = 4
1000 = 8

You can solve this in more than one way, well I can think of multiple ways atleast ^^
Hope this helps

Rhohitman Nov 20th, 2008 9:25 pm
Re: Convert Binary to Decimal and from Decimal to Binary
 
Quote:

Originally Posted by Gamergirl22 (Post 741029)
Thanks Rohitman. So, How do I reverse it as in binary to decimal? I know it has something to do with diffrent powers of a number like 2x^i. So, do I use a for loop for that or something else?

yes, you have to do some thing like that only. It your wish to use the recursive function or not but I don't recommend to use the recursive function in this case and earlier one too.

In any number system is represented by the general expression
a[n]*r^[n] + a[n-1]*r^[n-1] +........+ a[2]*r^[2] + a[1]*r^[1]+a[0] //integer part
+ a[-1]*r^[-1] + + a[-1]*r^[-2].......+ a[-m]*r^[-m] //fraction part

where,
a[j] is the coefficient
r is radix or base

For decimal no system r = 10; and coefficient can have the value from 0-9

Similarly the binary no system base will be 2, and can have only 2 values 0 and 1.

I guess concept would be clear...
best of luck for programming..

Gamergirl22 Nov 21st, 2008 7:53 pm
Re: Convert Binary to Decimal and from Decimal to Binary
 
Thanks, I think I got it. I finally got additional help from one of my friends in class.


All times are GMT -4. The time now is 11:14 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC