2016-07-23 65 views
0

我正在編寫一個程序,它需要兩個十六進制數字並將它們轉換爲十進制形式,並以十進制形式打印出它們的總和。數字的最大長度是10. {submit.cs.ucsb.edu/submission/203504}。我對錯誤信息感到困惑。這個問題希望號碼的最大長度爲10。爲什麼像「ffffffffff」輸出工作在C++中添加兩個十六進制數字

#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; 
} 
+0

號是一個數字。十六進制或10進制只是表示它的一種方式。對我來說,decimalToHex操作毫無意義。看看http://stackoverflow.com/questions/1070497/c-convert-hex-string-to-signed-integer。最後以十六進制格式打印std :: cout << std :: hex << decimal << end並記住。數字是數字。十六進制或十進制只是表示它的方式。 – Mquinteiro

+0

花一些時間測試你的代碼和谷歌搜索。 –

+0

@Mquinteiro:如果我想設置數字的最大長度爲10,那麼我使用if語句,但我只得到部分功勞。你能幫我看看嗎? submit.cs.ucsb.edu/submission/203493 –

回答

5

還有一個更簡單的方法來做到這一點:

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; 
+0

如果我想設置數字的最大長度爲10,那麼我使用if語句,但我只是得到部分功勞。你能幫我看看嗎? https://submit.cs.ucsb.edu/submission/203493 –

+0

在這種情況下,您需要查找數字的長度。這是另一個問題 – DimChtz

+0

或者你可以'如果(hex1> 9999999999 || hex2> 9999999999){/ *長度> 10,做些什麼* /}',因爲你只關心長度爲10. – DimChtz

相關問題