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
整數除法。
Division_by_zero
如果第二個參數為零。此除法將其參數的實數商向零捨入,如同 (/)
的規格。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 x
是 x
的絕對值。在 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 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
的符號如何,都會在騰空的位元中插入零。如果 y < 0
或 y >= 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
開頭)或十六進制、八進制或二進制讀取,如果字串分別以 0x
、0o
或 0b
開頭。
0u
前綴將輸入讀取為範圍 [0, 2*Int64.max_int+1]
中的無號整數。如果輸入超過 Int64.max_int
,則會將其轉換為有號整數 Int64.min_int + input - Int64.max_int - 1
。
_
(底線)字元可以出現在字串中的任何位置,並會被忽略。
Failure
,如果給定的字串不是整數的有效表示法,或者如果表示的整數超出 int64
型別中可表示的整數範圍。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
。
typet =
int64
64 位元整數型別的別名。
val compare : t -> t -> int
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
的參數傳遞。