如何在C中读取和分配大整数?

时间:2013-08-20 09:46:22

标签: c

我正在尝试将大整数值分配给c中的变量,当我打印时,我只得到10123456.

问题是什么?

  int main(){
      long a = 1234567890123456;
      printf("\n",sizeof(a));
      printf("%ld",a); 
  }

3 个答案:

答案 0 :(得分:6)

最大的整数类型是:

unsigned long long

不要忘记ULL后缀 或者如果您需要更大的整数,请查看一些bigint库,如gmp

当然,还有long long,但它也适用于负整数且限制较小。

 Type                min                      max

 (signed) long long  -9223372036854775808     9223372036854775807
 unsigned long long  0                        18446744073709551615

答案 1 :(得分:2)

long a = 1234567890123456L;

如果长的时间足够长,取决于编译器/操作系统。如果不是

long long a = 1234567890123456LL;

答案 2 :(得分:0)

如果数字大于64位,即长于unsigned long long可以容纳的数,那么除了字符串(char[])之外,C中的数据类型将不能容纳该值,存储它作为一个字符串&尝试编写自己的函数来操作(例如,加,减等)这些“非常大的数字”。