データ型と桁数

プログラミングコンテストの問題を解いていると、「Nは10の18乗以下」のような制約をよく見る。この制約から、変数Nのデータ型を決めて必要十分なサイズのメモリを確保する。

何乗だったらどのデータ型を使うべきかいつも迷ってしまうので、メモしておく。

データ型 サイズ 桁数
int 32bit 9
int64_t 64bit 18
long 32/64bit 9/18
long long 64bit 18
  • long型はWindowsで採用されるLLP64と呼ばれるデータモデルでは32bitで、Linuxで採用されるLP64というデータモデルでは64bitとして扱われる。
  • int64_t型のようなint??_t型はサイズが環境に依存しない。C99/C++11から使える。