我想存储像999999999或更大的整数值。
有没有人能推荐一种合适的数据类型?我尝试过unsigned long long,但它不起作用。
发布于 2011-11-07 22:57:17
有时这只是一个符号问题:
unsigned long long t = 9999999999999999999;将失败,而:
unsigned long long t = 9999999999999999999ULL;都会起作用的。
发布于 2011-11-07 22:56:08
确保添加了正确的文字说明符:
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。
如果您确实需要任意精度,您将需要一个软件解决方案,如GMP。
发布于 2011-11-08 00:09:07
这取决于你需要多少个9。
char *nines = calloc(1, number_of_nines+1);
memset(nines, '9', number_of_nines);效果很好。
https://stackoverflow.com/questions/8038067
复制相似问题