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

lui*_*iss 2 c++ integer

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

PS对不起"noobism",但就是这样:D

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

Ces*_*arB 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>,因为在这种情况下它应该简单地转发到编译器的头部).


CMS*_*CMS 6

long long,64 bit integer ... 在这里你可以找到一些关于数据类型和范围的参考...

  • 实际上,"long long"*在标准C99中是*,根据Wikipedia将在C++ 0x中. (2认同)

An̲*_*rew 5

任君选择:

\n\n

long long(\xe2\x80\x939,223,372,036,854,775,808 至 9,223,372,036,854,775,807)

\n\n

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

\n