如何在C中使用Long数据类型?

时间:2011-12-24 04:25:37

标签: java c rounding long-integer

我对C中的工作时间有点困惑。

如果我在Java中要求long的最大值,我会在quintillions中得到一个数字。如果我用C签名,签名或未签名,那就是数十亿。

Java是建立在C ...所以差异来自哪里?

我还尝试用长long值,unsigned / signed long值和long int值表示文字。他们似乎都没有处理过数十亿中期的数字。为什么?我犯了错误吗?

3 个答案:

答案 0 :(得分:10)

C标准将long定义为至少与int一样大。实际大小取决于实现。对于Java,情况并非如此,其中long需要64位长。

C99标准定义了固定大小的整数类型,如int64_t中定义的stdint.h,如果您需要在所有平台上使用固定大小的整数,则可以使用这些类型。

答案 1 :(得分:2)

C也有long long类型。保证至少64位。

答案 2 :(得分:0)

如果您想使用更大的数字,可以在此处使用GNU MP Bignum Library: http://gmplib.org/ 数字和精度仅受其运行的机器的可用内存限制。