module Int64:64 ビット整数sig..end
このモジュールは int64 型の符号付き 64 ビット整数の演算を提供します。
組み込みの int 型とは異なり、 int64 型はすべてのプラットフォームでちょうど
64 ビット幅であることが保証されています。
int64 型上の算術演算はすべて 264 を法とした剰余を取ります。
性能についての注意: int64 型の値は int 型の値よりもメモリ空間を多く消費し、一般に算術演算もより低速です。
アプリケーションで正確に 64 ビットの算術が必要な場合にだけ int64 型を使うようにしてください。
val zero : int64val one : int64val minus_one : int64val neg : int64 -> int64val add : int64 -> int64 -> int64val sub : int64 -> int64 -> int64val mul : int64 -> int64 -> int64val div : int64 -> int64 -> int64
val rem : int64 -> int64 -> int64y が 0 でないとき、 Int64.rem x y は次の性質を満たします。
すなわち、 x = Int64.add (Int64.mul (Int64.div x y) y) (Int64.rem x y) になります。
y = 0 の場合は Division_by_zero 例外が発生します。val succ : int64 -> int64Int64.succ x は Int64.add x Int64.one になります。val pred : int64 -> int64Int64.pred x は Int64.sub x Int64.one になります。val abs : int64 -> int64val max_int : int64val min_int : int64val logand : int64 -> int64 -> int64val logor : int64 -> int64 -> int64val logxor : int64 -> int64 -> int64val lognot : int64 -> int64val shift_left : int64 -> int -> int64Int64.shift_left x y は x を左に y ビットシフトします。
y < 0 と y >= 64 のときの結果は規定されていません。val shift_right : int64 -> int -> int64Int64.shift_right x y は x を右に y ビットシフトします。
これは算術シフトです。
すなわち、 x の符号ビットを複製して空いたビットを埋めます。
y < 0 と y >= 64 のときの結果は規定されていません。val shift_right_logical : int64 -> int -> int64Int64.shift_right_logical x y は x を右に y ビットシフトします。
これは論理シフトです。
すなわち、 x の符号によらず空いたビットを 0 で埋めます。
y < 0 と y >= 64 のときの結果は規定されていません。val of_int : int -> int64int 型の)整数を 64 ビット整数に変換します。val to_int : int64 -> intint 型の)整数に変換します。
64 ビットプラットフォームでは、引数の 64 ビット整数の 263 を法とした剰余を取ります。
すなわち、最上位ビットは変換により失われます。
32 ビットプラットフォームでは、引数の 64 ビット整数の 231 を法とした剰余を取ります。
すなわち、上位 33 ビットは変換により失われます。val of_float : float -> int64Int64.min_int, Int64.max_int] の範囲外だった場合の結果は未定義です。val to_float : int64 -> floatval of_int32 : int32 -> int64int32 型)を 64 ビット整数(int64 型)に変換します。val to_int32 : int64 -> int32int64 型)を 32 ビット整数(int32 型)に変換します。
引数の 64 ビット整数は 232 を法とした剰余を取ります。
すなわち、上位 32 ビットは変換により失われます。val of_nativeint : nativeint -> int64nativeint 型)を 64 ビット整数(int64 型)に変換します。val to_nativeint : int64 -> nativeintint64 型)を計算機ネイティブの整数に変換します。
32 ビットプラットフォームでは、引数の 64 ビット整数の 232 を法とした剰余を取ります。
64 ビットプラットフォームでは変換は正確に行なわれます。val of_string : string -> int640x、 0o、 0b で始まっていた場合には順に十六進、八進、二進で読み込まれます。
与えられた文字列が整数の表現として妥当でない場合や、 int64 で表せる範囲を越えていた場合には Failure "int_of_string" 例外が発生します。val to_string : int64 -> stringval bits_of_float : float -> int64float 値の内部表現を IEEE 754 浮動小数点数「倍精度形式」のビットレイアウトで返します。
戻り値の 63 ビット目は float 値の符号を表し、 62 ビット目から 52 ビット目は(バイアスされた)指数部、 51 ビット目から 0 ビット目は仮数部を表します。val float_of_bits : int64 -> floatint64 値が、その float 値の IEEE 754 浮動小数点数「倍精度形式」のビットレイアウトであるような浮動小数点数を返します。typet =int64
val compare : t -> t -> int