模組 Int64

module Int64: sig .. end

64 位元整數。

此模組提供對有號 64 位元整數型別 int64 的操作。與內建的 int 型別不同,int64 型別保證在所有平台上都是精確的 64 位元寬。所有對 int64 的算術運算都會對 264 取模。

效能注意事項:int64 型別的值比 int 型別的值佔用更多記憶體空間,並且對 int64 的算術運算通常比對 int 的運算慢。僅在應用程式需要精確的 64 位元算術時才使用 int64

64 位元整數的字面值以 L 作為後綴。

      let zero: int64 = 0L
      let one: int64 = 1L
      let m_one: int64 = -1L
    

val zero : int64

64 位元整數 0。

val one : int64

64 位元整數 1。

val minus_one : int64

64 位元整數 -1。

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 unsigned_div : int64 -> int64 -> int64

Int64.div 相同,只是參數和結果被解釋為無號 64 位元整數。

val rem : int64 -> int64 -> int64

整數餘數。如果 y 不為零,則 Int64.rem x 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 unsigned_rem : int64 -> int64 -> int64

Int64.rem 相同,只是參數和結果被解釋為無號 64 位元整數。

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

abs xx 的絕對值。在 min_int 上,它本身就是 min_int,因此仍然是負數。

val max_int : int64

可表示的最大 64 位元整數,263 - 1。

val min_int : int64

可表示的最小 64 位元整數,-263

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 yx 向左移動 y 位元。如果 y < 0y >= 64,則結果未指定。

val shift_right : int64 -> int -> int64

Int64.shift_right x yx 向右移動 y 位元。這是算術移位:x 的符號位被複製並插入到騰空的位元中。如果 y < 0y >= 64,則結果未指定。

val shift_right_logical : int64 -> int -> int64

Int64.shift_right_logical x yx 向右移動 y 位元。這是邏輯移位:無論 x 的符號如何,都會在騰空的位元中插入零。如果 y < 0y >= 64,則結果未指定。

val of_int : int -> int64

將給定的整數(int 型別)轉換為 64 位元整數(int64 型別)。

val to_int : int64 -> int

將給定的 64 位元整數(int64 型別)轉換為整數(int 型別)。在 64 位元平台上,64 位元整數會對 263 取模,也就是說,高位元在轉換期間會遺失。在 32 位元平台上,64 位元整數會對 231 取模,也就是說,最高 33 位元在轉換期間會遺失。

val unsigned_to_int : int64 -> int option

Int64.to_int 相同,但將參數解釋為無號整數。如果參數的無號值不適合放入 int,則返回 None

val of_float : float -> int64

將給定的浮點數轉換為 64 位元整數,捨棄小數部分(向 0 截斷)。如果截斷的浮點數超出範圍 [Int64.min_int, Int64.max_int],則不會拋出例外,並且會返回未指定的、與平台相關的整數。

val to_float : int64 -> float

將給定的 64 位元整數轉換為浮點數。

val of_int32 : int32 -> int64

將給定的 32 位元整數(int32 型別)轉換為 64 位元整數(int64 型別)。

val to_int32 : int64 -> int32

將給定的 64 位元整數(int64 型別)轉換為 32 位元整數(int32 型別)。64 位元整數會對 232 取模,也就是說,最高 32 位元在轉換期間會遺失。

val of_nativeint : nativeint -> int64

將給定的原生整數(nativeint 型別)轉換為 64 位元整數(int64 型別)。

val to_nativeint : int64 -> nativeint

將給定的 64 位元整數(int64 型別)轉換為原生整數。在 32 位元平台上,64 位元整數會對 232 取模。在 64 位元平台上,轉換是精確的。

val of_string : string -> int64

將給定的字串轉換為 64 位元整數。字串會以十進制(預設,或如果字串以 0u 開頭)或十六進制、八進制或二進制讀取,如果字串分別以 0x0o0b 開頭。

0u 前綴將輸入讀取為範圍 [0, 2*Int64.max_int+1] 中的無號整數。如果輸入超過 Int64.max_int,則會將其轉換為有號整數 Int64.min_int + input - Int64.max_int - 1

_(底線)字元可以出現在字串中的任何位置,並會被忽略。

val of_string_opt : string -> int64 option

of_string 相同,但返回 None 而不是拋出。

val to_string : int64 -> string

返回其參數的字串表示法,以十進制表示。

val bits_of_float : float -> int64

根據 IEEE 754 浮點數「雙精度格式」位元佈局,返回給定浮點數的內部表示法。結果的第 63 位元表示浮點數的符號;第 62 至 52 位元表示(偏差)指數;第 51 至 0 位元表示尾數。

val float_of_bits : int64 -> float

返回浮點數,其內部表示法根據 IEEE 754 浮點數「雙精度格式」位元佈局,是給定的 int64

type t = int64 

64 位元整數型別的別名。

val compare : t -> t -> int

64 位元整數的比較函式,與 compare 的規格相同。連同型別 t,此函式 compare 允許模組 Int64 作為函子 Set.MakeMap.Make 的參數傳遞。

val unsigned_compare : t -> t -> int

Int64.compare 相同,只是參數被解釋為無號 64 位元整數。

val equal : t -> t -> bool

int64 的相等函式。

val min : t -> t -> t

返回兩個參數中較小的那個。

val max : t -> t -> t

返回兩個參數中較大的那個。

val seeded_hash : int -> t -> int

64 位元整數的種子雜湊函式,具有與 Hashtbl.seeded_hash 相同的輸出值。此函式允許此模組作為函子 Hashtbl.MakeSeeded 的參數傳遞。

val hash : t -> int

64 位元整數的未播種雜湊函式,具有與 Hashtbl.hash 相同的輸出值。此函式允許此模組作為函子 Hashtbl.Make 的參數傳遞。