什么类型的整数超过4个字节?

时间:2008-10-18 18:58:19

标签: c++ integer

我必须使用可以跨越4个字节以上的无符号整数,我应该使用哪种类型?

PS抱歉“noobism”,但就是这样:D

注意:我需要整数,因为我必须做除法,只关心整数部分,这样int很有用

5 个答案:

答案 0 :(得分:11)

只需包含< stdint.h>并使用int64_t和uint64_t(因为你想要无符号,你想要uint64_t)。

该标头还有其他几个有用的变体,例如最少的变体(uint_least64_t是至少64位的类型)和快速变体(uint_fast64_t是最快的整数类型,至少64位)。同样非常有用的是intptr_t / uintptr_t(对于void *指针足够大)和intmax_t / uintmax_t(最大类型)。

如果由于某种原因你的编译器没有< stdint.h> (因为IIRC它是C标准,而不是C ++标准),你可以使用Boost的boost/cstdint.hpp(即使你有一个< stdint.h>也可以使用它,因为在这种情况下它应该简单地转发到编译器的标题)。

答案 1 :(得分:6)

long long ,64位整数... here你可以找到一些关于数据类型和范围的参考...

答案 2 :(得分:4)

选择:

long long( - 9,223,372,036,854,775,808至9,223,372,036,854,775,807)

unsigned long long :( 0到18,446,744,073,709,551,615)

答案 3 :(得分:2)

如果你需要非常长的整数(任意精度),你也可以尝试gmp库,它也提供了一个基于C ++类的接口。

答案 4 :(得分:1)

unsigned long long - 至少64位长