我想存储整数值,如999999999或更高
有人可以建议(我尝试签名很长但没有工作)
答案 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
该标准保证您的号码符合long
或long long
(无论是有签名还是无签名),但在大多数现代平台上,它也适合普通int
。< / p>
如果您确实需要任意精度,则需要一个软件解决方案,例如GMP。
答案 2 :(得分:1)
取决于你需要多少9个。 char *nines = calloc(1, number_of_nines+1); memset(nines, '9', number_of_nines);
效果很好......
答案 3 :(得分:1)
如果要使用数字进行逻辑,则使用数组来获取或设置数据;或者,如果您打算使用数字进行存储,请使用字符串。