module Int32: sig end
このモジュールでは符号付き 32 ビット整数の型 int32
を処理できます。組み込みの int
型とは異なり、int32
型はプラットフォームを問わず 32 ビットの幅を持つことが保証されています。int32
に関する算術処理は 232 を法とする演算になります。
パフォーマンスについて: int32
型の値は int
型の値に比べて多くのメモリを必要とし、また int32
の算術処理は一般に int
より遅くなります。int32
は 32 ビットの算術演算が必要なときだけ使用してください。
val zero : int32
val one : int32
val minus_one : int32
val neg : int32 -> int32
val add : int32 -> int32 -> int32
val sub : int32 -> int32 -> int32
val mul : int32 -> int32 -> int32
val div : int32 -> int32 -> int32
val rem : int32 -> int32 -> int32
y
が 0 でない場合、Int32.rem x y
の結果は Int32.zero <= Int32.rem x y < Int32.abs y
かつ x = Int32.add (Int32.mul (Int32.div x y) y) (Int32.rem x y)
という特性を持ちます。y = 0
である場合は、Int32.rem x y
は例外 Division_by_zero
を発生します。val succ : int32 -> int32
Int32.succ x
は Int32.add x Int32.one
です。val pred : int32 -> int32
Int32.pred x
は Int32.sub x Int32.one
です。val abs : int32 -> int32
val max_int : int32
val min_int : int32
val logand : int32 -> int32 -> int32
val logor : int32 -> int32 -> int32
val logxor : int32 -> int32 -> int32
val lognot : int32 -> int32
val shift_left : int32 -> int -> int32
Int32.shift_left x y
は x
を左に y
ビットシフトします。
y < 0
または y >= 32
のとき結果は規定されていません。val shift_right : int32 -> int -> int32
Int32.shift_right x y
は x
を右に y
ビットシフトします。
これは算術シフトです。新しく空いた上位ビットには x
の符号ビットが複製され挿入されます。
y < 0
または y >= 32
のとき結果は規定されていません。val shift_right_logical : int32 -> int -> int32
Int32.shift_right_logical x y
は x
を右に y
ビットシフトします。
これは論理シフトです。新しく空いた上位ビットには x
の符号ではなく常に 0 が入ります。
y < 0
または y >= 32
のとき結果は規定されていません。val of_int : int -> int32
int
型) を 32 ビット整数 (int32
型) に変換します。val to_int : int32 -> int
int32
型) を整数 (int
型) に変換します。32 ビットプラットフォームでは、231 を法とした数を返します。つまり変換によって最上位ビットを失います。64 ビットプラットフォームでは、変換による情報損失はありません。val of_float : float -> int32
Int32.min_int
, Int32.max_int
] の範囲にない場合、変換結果は未定義です。val to_float : int32 -> float
val of_string : string -> int32
0x
、0o
、0b
で始まっている場合はそれぞれ 16 進、8 進、2 進として解釈されます。
文字列が整数を表す文字列として不正であった場合は、例外 Failure "int_of_string"
が発生します。val to_string : int32 -> string
val format : string -> int32 -> string
Int32.format fmt n
は 32 ビット整数 n
を、fmt
で指定されたフォーマットで文字列表示して返します。
fmt
は Printf
方式のフォーマットで、変換指定 %d
、%i
、%u
、%x
、%X
、%o
のどれかになります。この関数は推奨されていません。代わりに Printf.sprintf
で %lx
フォーマットを使用してください。type t = int32
val compare : t -> t -> int
Pervasives.compare
の仕様と同じです。型 t
とこの関数 compare
を使ってモジュール String
を functor Set.Make
や Map.Make
の引数として渡すことができます。