整数型
各プログラミング言語・アプリケーション実装での整数型について
JavaScript
プリミティブな整数型は存在しない。
標準の数として Number 型が使われる。これは IEEE 754 倍精度浮動小数点数になる。
$ 2^{53}-1 = 9007199254740991
BigInt 型は任意精度の整数
Java
Java では符号なし整数型が存在しない。そのため、符号なしのための演算を用意してある。
128bit 整数型は存在しない。
char
UTF-16の文字型で厳密には整数型ではない。(C/C++とは異なる)
値としては 0x0000 ~ 0xffff まで
short
符号付き 16bit 整数値
int
符号付き 32bit 整数値
long
符号付き 64bit 整数値
C/C++
ビット幅は実装に依存する。
signed を付けると符号付きになる。(デフォルト)
unsigned を付けると符号なしになる。
char は signed か unsigned かは実装依存。また、型のマッチングは、char != signed char != unsigned char である。
ビット幅は以下の条件を必ず満たす。
char <= 8
char <= short <= int <= long <= long long
実装に依存すると言われてはいるが、ほぼ以下のパターンになる。
table:c.type.bitwidth
型 ビット幅
char 8
short 16
int 32/64
long 32/64
long long 64
int と long のビット幅が実装によって食い違うために混乱し続けている。
幅を指定した型を stdint.h で定義している。
intN_t, uintN_t として書ける。
例: int16_t, uint32_t
関連