module Int64: sig end
このモジュールでは符号付き 64 ビット整数の型 int64
を処理できます。組み込みの int
型とは異なり、int64
型はプラットフォームを問わず 64 ビットの幅を持つことが保証されています。int64
に関する算術処理は 264 を法とする演算になります。
パフォーマンスについて: int64
型の値は int
型の値に比べて多くのメモリを必要とし、また int64
の算術処理は一般に int
より遅くなります。int64
は 64 ビットの算術演算が必要なときだけ使用してください。
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
の結果は Int64.zero <= Int64.rem x y < Int64.abs y
かつ x = Int64.add (Int64.mul (Int64.div x y) y) (Int64.rem x y)
という特性を持ちます。y = 0
である場合は、Int64.rem x y
は例外 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 ビット整数 (int64
型) に変換します。val to_int : int64 -> int
int64
型) を整数 (int
型) に変換します。64 ビットプラットフォームでは、263 を法とした数を返します。つまり変換によって最上位ビットを失います。32 ビットプラットフォームでは、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
int64
型) に変換します。val to_nativeint : int64 -> nativeint
int64
型) を native 整数に変換します。32 ビットプラットフォームでは、232 を法とした数に変換されます。64 ビットプラットフォームでは、変換による情報損失はありません。val of_string : string -> int64
0x
、0o
、0b
で始まっている場合はそれぞれ 16 進、8 進、2 進として解釈されます。
文字列が整数を表す文字列として不正であった場合は、例外 Failure "int_of_string"
が発生します。val to_string : int64 -> string
val format : string -> int64 -> string
Int64.format fmt n
は 64 ビット整数 n
を、fmt
で指定されたフォーマットで文字列表示して返します。
fmt
は Printf
方式のフォーマットで、変換指定 %d
、%i
、%u
、%x
、%X
、%o
のどれかになります。この関数は推奨されていません。代わりに Printf.sprintf
で %Lx
フォーマットを使用してください。val bits_of_float : float -> int64
val float_of_bits : int64 -> float
int64
で与えられた IEEE 754 浮動小数点 double フォーマットビットレイアウトの内部形式を持つ浮動小数点小数を返します。type t = int64
val compare : t -> t -> int
Pervasives.compare
の仕様と同じです。型 t
とこの関数 compare
を使ってモジュール String
を functor Set.Make
や Map.Make
の引数として渡すことができます。