2014-01-07 88 views
0

我想将十进制数字转换为十六进制数字。存在的问题是数目过大,不能在INT datatype.For例如存储,整数溢出

int a = pow(10,17); 

但是,如果我尝试使用双,我将面对模运算的问题,因为它不支持浮点数据类型。

我应该怎么做才能转换并存储它? (项目欧拉问题编号162)。

+0

为什么不使用'long'?请参阅http://stackoverflow.com/a/900245/836214 – Krease

+0

'unsigned long int'如何? – Levi

+0

即使long int也不能存储这样的非常大的数据,pow(10,17) – MakaraPr

回答

0

使用可以使用long

要知道其中的差别去 Difference between long and int data types

只需通过

long variable=(long)a; 

转换int to long如果不符合您的requiremnet

您可以使用long longlong long in C/C++

转换:

long long variable = (long long) a; 
+1

在某些平台上(例如Windows)'long'与'int'的大小相同。 –

+0

然后他可以使用long long –

+0

如果他使用C++ 11,他可以使用int64_t。 http://en.cppreference.com/w/cpp/types/integer – olevegard