type unsigned long long int是否足够1到10 ^ 9范围?

时间:2018-04-04 14:24:55

标签: c types

Consigne :每个整数都在1 - 10 9 的范围内。

我使用unsigned long long int

类型的变量

对于规定的范围是否足够?

4 个答案:

答案 0 :(得分:5)

是的(假设您使用符号10^9表示1e9 - ^是C中的XOR运算符,10^9是{{1} })。

3必须能够存储0到2之间的数字 64 - 1.你的最大值远小于此值。

另请注意,unsigned long long必须能够存储0到2之间的数字 32 - 1.您的最大值也小于此值。

答案 1 :(得分:5)

10 ^ 9小于2 ^ 32

所以在你的情况下,不需要使用unsigned long long(它适合,是),这是过度杀伤并且可能导致操作变慢。

使用stdint.h中规范化的正确类型:uint32_tuint_least32_tuint32_t vs uint_fast32_t vs uint_least32_t

long也保证为at least 32 bits,所以这是一个很好的&简单的选择。

答案 2 :(得分:1)

长整数无符号整数类型。至少包含[0,+ 18,446,744,073,709,551,615]范围; 自C99版本标准以来指定。

来源:https://en.m.wikipedia.org/wiki/C_data_types

答案 3 :(得分:0)

答案是肯定的,但您不需要unsigned long longunsigned long就够了。

32位数字可以代表超过4 * 10 ^ 9。最多4 294 967 296。