データ型と桁数
プログラミングコンテストの問題を解いていると、「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から使える。