C++ 整数の型
C++の整数の型
参考:【C言語/C++】データ型のサイズ・範囲の一覧【32bit/64bit環境】 | MaryCore
- short型が、16bit
- int型が、32bit
- long型が、32bitか64bit
- long long型が、64bit
long型は、パソコンの環境によって、変わってしまうらしいので、確実に64bitの大きさが必要ならlong long型にする必要があるらしい。
何bitで最大いくつまで表せるか
- 1bitは0か1を表せます。
- x bitは、2のx乗 - 1を表せます。
- 符号ありの場合、符号で1bit使うので、2のx-1乗 - 1を表せます。
#include <bits/stdc++.h>using namespace std;using ULL = unsigned long long;
int main() { vector<int> n = {2, 3, 8, 16, 32, 64}; for (int x : n) { ULL maxSign = pow(2, x - 2); maxSign = maxSign - 1 + maxSign; ULL maxUnSign = pow(2, x - 1); maxUnSign = maxUnSign - 1 + maxUnSign; cout << x << "bit(符号あり)で表せる最大数: " << maxSign << endl; cout << x << "bit(符号なし)で表せる最大数: " << maxUnSign << endl; cout << "----------" << endl; }}2bit(符号あり)で表せる最大数: 12bit(符号なし)で表せる最大数: 3----------3bit(符号あり)で表せる最大数: 33bit(符号なし)で表せる最大数: 7----------8bit(符号あり)で表せる最大数: 1278bit(符号なし)で表せる最大数: 255----------16bit(符号あり)で表せる最大数: 3276716bit(符号なし)で表せる最大数: 65535----------32bit(符号あり)で表せる最大数: 214748364732bit(符号なし)で表せる最大数: 4294967295----------64bit(符号あり)で表せる最大数: 922337203685477580764bit(符号なし)で表せる最大数: 18446744073709551615----------何bitで10の何乗まで表せるか
- 16bitは、符号ありなし問わず最大5桁なので、10の4乗までOK。
- 5乗になったら、32bitにしないといけない。
- 32bitは、符号ありなし問わず最大10桁なので、10の9乗までOK。
- 10乗になったら、64bitにしないといけない。
- 64bitは、符号ありで最大19桁なので、10の18乗までOK。
- 符号なしは最大20桁なので、10の19乗までOK。