我正在处理一个数学示例。我需要为我的代码使用12位数字。那么我应该使用哪种数据类型来使用我的功能中的数字?

有帮助吗?

解决方案

64位整数(long, int64_t, unsigned long, uint64_t)应该解决问题,或者如果您需要小数为小数 double 或者 long double.

其他提示

如果您有64位整数类型,我会选择这一点,因为它为您提供了(18个全数)范围:

−9,223,372,036,854,775,808 to
+9,223,372,036,854,775,807

对于其他任务(甚至更大的整数或庞大的浮点值),我使用 GMP, ,gnu多精确库。表现令人印象深刻。

您也可以使用格式指定符“ llu”使用“未签名的长长”。它适用于C中的12位数字。

unsigned long long i=600851475143;
printf("%llu",i);

在寻找名为Bignum的库时,我发现了这个 Wiki页面

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top