应该使用哪种数据类型来存储c中的值999999999

时间:2011-11-07 14:47:23

标签: c

我想存储整数值,如999999999或更高

有人可以建议(我尝试签名很长但没有工作)

4 个答案:

答案 0 :(得分:4)

有时这只是一个符号问题:

unsigned long long t = 9999999999999999999;

会失败,而:

unsigned long long t = 9999999999999999999ULL;

会奏效。

答案 1 :(得分:2)

确保添加正确的文字说明符:

unsigned long long int a = 12ULL; // guaranteed up to 18,446,744,073,709,551,615
unsigned long int b = 13UL;       // guaranteed up to              4,294,967,295
unsigned int c = 14U;             // guaranteed up to                     65,535

该标准保证您的号码符合longlong long(无论是有签名还是无签名),但在大多数现代平台上,它也适合普通int。< / p>

如果您确实需要任意精度,则需要一个软件解决方案,例如GMP

答案 2 :(得分:1)

取决于你需要多少9个。 char *nines = calloc(1, number_of_nines+1); memset(nines, '9', number_of_nines);效果很好......

答案 3 :(得分:1)

如果要使用数字进行逻辑,则使用数组来获取或设置数据;或者,如果您打算使用数字进行存储,请使用字符串。