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