我想将十进制数字转换为十六进制数字。存在的问题是数目过大,不能在INT datatype.For例如存储,整数溢出
int a = pow(10,17);
但是,如果我尝试使用双,我将面对模运算的问题,因为它不支持浮点数据类型。
我应该怎么做才能转换并存储它? (项目欧拉问题编号162)。
我想将十进制数字转换为十六进制数字。存在的问题是数目过大,不能在INT datatype.For例如存储,整数溢出
int a = pow(10,17);
但是,如果我尝试使用双,我将面对模运算的问题,因为它不支持浮点数据类型。
我应该怎么做才能转换并存储它? (项目欧拉问题编号162)。
使用可以使用long
为
要知道其中的差别去 Difference between long and int data types
只需通过
long variable=(long)a;
转换int to long
如果不符合您的requiremnet
您可以使用long long
long long in C/C++
转换:
long long variable = (long long) a;
在某些平台上(例如Windows)'long'与'int'的大小相同。 –
然后他可以使用long long –
如果他使用C++ 11,他可以使用int64_t。 http://en.cppreference.com/w/cpp/types/integer – olevegard
为什么不使用'long'?请参阅http://stackoverflow.com/a/900245/836214 – Krease
'unsigned long int'如何? – Levi
即使long int也不能存储这样的非常大的数据,pow(10,17) – MakaraPr