long より大きな範囲を扱う

型を重ねて書くと、倍になる。

64bit の数値の場合

long long ll_hoge;

などとする。

符号なしの場合は

unsigned long long ull_hoge;

フォーマット指定子も ll とか llu とかにする。

printf("%ll", ll_hoge);
printf("%llu", ull_hoge);

ちなみに、これは Linux(GCC)の場合で、VC++ の場合はこう。

printf("%l64", ll_hoge);
printf("%l64u", ull_hoge);

Linux の場合は stdint.h に int64_t と uint64_t という型が定義されてるので、それを使ってもOK。

  • long long → int64_t
  • unsigned long long → uint64_t

VC++ の場合は

  • long long → __int64
  • unsigned long long → unsigned __int64

コメント

タイトルとURLをコピーしました