首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C中应该使用哪种数据类型来存储像999999999这样的值?

在C中应该使用哪种数据类型来存储像999999999这样的值?
EN

Stack Overflow用户
提问于 2011-11-07 22:47:23
回答 4查看 1.9K关注 0票数 1

我想存储像999999999或更大的整数值。

有没有人能推荐一种合适的数据类型?我尝试过unsigned long long,但它不起作用。

EN

回答 4

Stack Overflow用户

发布于 2011-11-07 22:57:17

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

代码语言:javascript
复制
unsigned long long t = 9999999999999999999;

将失败,而:

代码语言:javascript
复制
unsigned long long t = 9999999999999999999ULL;

都会起作用的。

票数 4
EN

Stack Overflow用户

发布于 2011-11-07 22:56:08

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

代码语言:javascript
复制
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

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

票数 2
EN

Stack Overflow用户

发布于 2011-11-08 00:09:07

这取决于你需要多少个9。

代码语言:javascript
复制
char *nines = calloc(1, number_of_nines+1);
memset(nines, '9', number_of_nines);

效果很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8038067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档