module Int32:32 ビット整数sig
..end
このモジュールは int32
型の符号付き 32 ビット整数の演算を提供します。
組み込みの int
型とは異なり、 int32
型はすべてのプラットフォームでちょうど
32 ビット幅であることが保証されています。
int32
型上の算術演算はすべて 232 を法とした剰余を取ります。
性能についての注意: int32
型の値は int
型の値よりもメモリ空間を多く消費し、一般に算術演算もより低速です。
アプリケーションで正確に 32 ビットの算術が必要な場合にだけ int32
型を使うようにしてください。
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
は次の性質を満たします。
すなわち、 x = Int32.add (Int32.mul (Int32.div x y) y) (Int32.rem x y)
になります。
y = 0
の場合は 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 ビット整数に変換します。val to_int : int32 -> int
int
型の)整数に変換します。
32 ビットプラットフォームでは、引数の 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
で始まっていた場合には順に十六進、八進、二進で読み込まれます。
与えられた文字列が整数の表現として妥当でない場合や、 int32
で表せる範囲を越えていた場合には Failure "int_of_string"
例外が発生します。val to_string : int32 -> string
val bits_of_float : float -> int32
float
値の内部表現を IEEE 754 浮動小数点数「単精度形式」のビットレイアウトで返します。
戻り値の 31 ビット目は float
値の符号を表し、 30 ビット目から 23 ビット目は(バイアスされた)指数部、 22 ビット目から 0 ビット目は仮数部を表します。val float_of_bits : int32 -> float
int32
値が、その float
値の IEEE 754 浮動小数点数「単精度形式」のビットレイアウトであるような浮動小数点数を返します。typet =
int32
val compare : t -> t -> int