这是用于存储大值的c语言中最大的数据类型?

时间:2015-06-20 11:12:04

标签: c

c中最大的数据类型是什么,我可以存储10 ^ 17等大值?并且还告诉如何在这种特殊情况下接受用户输入,存储,打印。

1 个答案:

答案 0 :(得分:0)

特定实现可以选择支持实现定义的扩展整数类型(N1570 6.2.5 类型):

  

4)可能还有实现定义的扩展有符号整数   types 38)标准和扩展有符号整数类型   统称为有符号整数类型 39

     

6)与扩展签名对应的无符号整数类型   整数类型是扩展的无符号整数类型。标准   和扩展无符号整数类型统称为 unsigned   整数类型 .40)

动机可能允许128位宽的整数,但似乎没有兴趣。特定实现更有可能通过扩展来支持这样的整数,例如gcc中的__int128

但是,如果您的要求高达10 17 ,那么您可以使用标准的无符号整数类型,例如unsigned long long int。它保证至少为64位宽,因此可能的范围至少为[0,2 64 -1],略大于18 * 10 18

请注意,在C99中引入了long long类型,但即使是较旧的C89编译器也可能通过扩展支持它们。有关任何详细信息,请查看编译器的文档。

printf()scanf()都需要格式说明符中的前缀ll。例如:

unsigned long long n = ULLONG_MAX;
printf("lld", n);