answersLogoWhite

0

The following code will convert any number in any base to any other base, from binary to hexadecimal, and everything inbetween.

#include<iostream>

#include<string>

#include<sstream>

typedef unsigned long long ull;

typedef unsigned long ul;

const std::string symbols="0123456789abcdef";

std::string inputvalue(ul base)

{

using namespace std;

string value;

while(1)

{

cout<<"Enter a positive value : ";

string s;

getline(cin,s);

if(s.size())

{

for(string::iterator i=s.begin();i!=s.end();++i)

if(*i>='A' && *i<='Z')

*i+=32;

string actual = symbols.substr(0,base);

if(s.find_first_not_of(actual)!=string::npos)

{

cout<<"The value you entered is invalid for the base.\n"

<<"Please enter another value.\n"<<endl;

continue;

}

value=s;

break;

}

}

return(value);

}

ul inputbase(std::string prompt)

{

using namespace std;

ul result=0, min=2, max=16;

while(1)

{

cout<<prompt.c_str()<<" ["<<min<<".."<<max<<"] : ";

string s;

getline(cin,s);

if(s.size())

result=stoul(s,0,10);

if(result<min result>max)

cout<<"The base must be in the range "

<<min<<".."<<max<<"\n"

<<"Please enter another base.\n"<<endl;

else

break;

}

return(result);

}

ull base2dec(std::string value,ul base)

{

ull col=1, num=0;

for(std::string::reverse_iterator i=value.rbegin(); i!=value.rend(); ++i)

{

num+=symbols.find(*i,0)*col;

col*=base;

}

return(num);

}

std::string dec2base(ull dec,ul base)

{

using namespace std;

int len=1;

ull tmp=dec;

while(tmp/=base)

++len;

string value("0",len);

while(dec)

{

value[--len]=symbols[dec%base];

dec/=base;

}

return(value);

}

int main()

{

using namespace std;

ul base=inputbase("Enter the base of the value");

string value=inputvalue(base);

ul newbase=inputbase("Enter the base to convert to");

value=dec2base(base2dec(value,base),newbase);

cout<<"New value:\t"<<value.c_str()<<endl;

return(0);

}

User Avatar

Wiki User

12y ago

What else can I help you with?

Related Questions

How do you convert decimal number 63 to binary?

The binary equivalent of the decimal number 63 is 111111.


How do you convert binary to excess 3 code?

To convert a binary number to Excess-3 code, first, convert the binary number to its decimal equivalent. Then, add 3 to the decimal value. Finally, convert the resulting decimal number back to binary. For instance, to convert the binary number 1010 (which is 10 in decimal), you would calculate 10 + 3 = 13, and then convert 13 back to binary, resulting in 1101 in Excess-3 code.


How to Convert 11.1 binary to decimal?

The binary number 11.1 in decimal would be 3.5


Convert binary number 110111 to decimal?

Binary 110111 is equivalent to decimal 55.


Convert 186 decimal numbers to its binary equivalent?

Convert 189 to binary number


How we can convert decimal number into binary number in foxpro programming?

In FoxPro, you can convert a decimal number to a binary number using the DECIMAL() and STR() functions. First, use DECIMAL() to get the binary representation, then format it as a string using STR(). Here's an example: binaryString = STR(DECIMAL(decimalNumber, 2)). This will give you the binary equivalent of the decimal number.


Convert 13 into a binary number?

13 in decimal = 1101 in binary.


Convert the decimal number 400 to binary?

110010000


What is the convert the decimal number 35 to binary?

It is 100011.


Convert the binary number 10011011to decimal?

It is 155.


What is 97 in binary code?

You can easily convert decimal to binary in the scientific calculator - for example, the scientific calculator found in Windows. In this case, type the number in decimal, then click on "binary" to convert to binary.


How do you write a c program to convert binary to decimal by using while statement?

write a c++ program to convert binary number to decimal number by using while statement