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