型ごとの上限・下限

一応型ごとの大きさは規格では決まってない(最小限のビット数はあるけどこれを書いても意味がない) けど x86_64 だったら普通同じになるはず。

Type Bits Max Min
signed char 8 -128 127
unsigned char 8 0 255
signed short 16 -32768 32767
unsigned short 16 0 65535
signed int 32 -2147483648 2147483647
unsigned int 32 0 4294967295
signed long int 64 -9223372036854775808 9223372036854775807
unsigned long int 64 0 18446744073709551615
signed long long int 64 -9223372036854775808 9223372036854775807
unsigned long long int 64 0 18446744073709551615

コード

#include <iostream>
#include <limits>
using namespace std;

#define LIMIT(type) cout << "`" #type "` | "                            \
    << sizeof(type) * numeric_limits<unsigned char>::digits << " | "    \
    << +numeric_limits<type>::min() << " | "                            \
    << +numeric_limits<type>::max() << endl;

int main() {
    cout << "Type | Bits | Max | Min" << endl;
    cout << "-----|------|-----|----" << endl;
    LIMIT(signed char);
    LIMIT(unsigned char);
    LIMIT(signed short);
    LIMIT(unsigned short);
    LIMIT(signed int);
    LIMIT(unsigned int);
    LIMIT(signed long int);
    LIMIT(unsigned long int);
    LIMIT(signed long long int);
    LIMIT(unsigned long long int);
}

浮動小数点数

10進での桁数

type num
float 6
double 15
long double 18