c++中两个十六进制数字的相加

The addition of two hexadecimal numerals in c++

本文关键字:十六进制数字 两个 c++      更新时间:2023-10-16

我正在编写一个程序,该程序将两个十六进制数转换为十进制,并以十进制形式打印出它们的和。这些数字的最大长度为10。{submit.cs.ucsb.edu/submite/203504}。我对错误消息感到困惑。问题是数字的最大长度是10。为什么像"ffffffff"这样的输出工作

#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int hexToDecimal(string);
string decimalToHex(int);
int main()
{
    long long hex1, hex2;
std::cout << "Enter first number:" << std::endl;
std::cin >> std::hex >> hex1;
std::cout << "Enter a second number:" << std::endl;
std::cin >> std::hex >> hex2;
if (hex1 >9999999999 || hex2 > 9999999999)
{
    cout << "Addition Overflow" << endl;
}
else
{
    std::cout << "The sum is "<< std::hex << hex1 + hex2 << "." << std::endl;
}

return 0;
}

有一种更简单的方法:

int hex1, hex2;
std::cout << "Enter first hex number:" << std::endl;
std::cin >> std::hex >> hex1;
std::cout << "Enter a second hex number:" << std::endl;
std::cin >> std::hex >> hex2;
std::cout << std::hex << hex1 + hex2 << std::endl;