/**********************************
* Written by Mathias Van Malderen
**********************************/

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

string dec2hex(long a);
long hex2dec(const string & hexstr);
string hexadd(const string & hex1, const string & hex2);

int main()
{
	string hex1, hex2;
	cout << endl << "Type two hex numbers: " << endl << endl;
	cout << "> First hex number: _______________\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
	cin >> hex1;
	cout << "> First hex number: _______________\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
	cin >> hex2;
	cout << endl << endl << "Sum of the two hex numbers: " << hexadd(hex1,hex2) << endl;
	return 0;
}

string hexadd(const string & hex1, const string & hex2)
{
	long n1, n2;
	n1 = hex2dec(hex1);
	n2 = hex2dec(hex2);
	return dec2hex(n1+n2);
}

string dec2hex(long i)
{
	stringstream ss;
	string s;
	hex(ss);
	uppercase(ss);
	ss << i;
	ss >> s;
	return s;
}

long hex2dec(const string & hexstr)
{
	stringstream ss;
	long i = 0;
	hex(ss);
	ss << hexstr;
	ss.clear();
	ss >> i;
	return i;
}
3
Contributors
4
Replies
6
Views
7 Years
Discussion Span
Last Post by alebuddy
0

If you also need subtraction, multiplication and division for hexadecimal number you only have to change the sign in the return instruction of the hexadd-function from '+' to -, *, /

...

0

You could just shove this in a class and overload the operators to do your operations, and to save time store the value as an integer till a call request the value in its HEX forum.

0

Hi, good afternoon!!

Can I get this code in C, NOT in C++. please, I´m a newbie. and I'd like to understand the basic instructions and the logic for this Hex addition. Can you help me, please!! Thanks

Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.