Просто введите <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/cstdint.hpp (которые вы можете использовать, даже если у вас есть a <stdint.h>, так как в этом случае он должен просто переслать заголовок компилятора).
Спасибо, не знал, что я могу использовать «двойной» длинный: D – luiss 2008-10-18 19:02:50
Используйте, как описано в ответе CesarB для * портативного * решения. GCC не понимает __int64, MSVC6 (и, возможно, 2003) не понимают «длинный длинный», и ни один из них не является стандартом. –
ephemient
2008-10-18 19:48:09