如何在C中读取和分配大整数?
我试图将大整数值分配给c中的变量,当我打印时,我只得到10123456。
有什么问题?
int main(){ long a = 1234567890123456; printf("\n",sizeof(a)); printf("%ld",a); }
最大的整数类型是:
unsigned long long
不要忘记ULL后缀。
或者如果你需要更大的整数,请查看一些像gmp这样的bigint库。
当然,也有很long long
,但它也适用于负整数并且具有较小的限制。
Type min max (signed) long long -9223372036854775808 9223372036854775807 unsigned long long 0 18446744073709551615
long a = 1234567890123456L;
如果长的时间足够长,取决于编译器/操作系统。 如果不
long long a = 1234567890123456LL;
如果数字大于64位,即长于unsigned long long
可以容纳的数量,那么除了string( char[]
)之外的C中的数据类型将不能容纳该值,将其存储为字符串并尝试写入你自己的function在这些“非常大的数字”上进行操作(例如加,减等)。