module Int64:sig
..end
64 位整数。
此模块提供对类型 int64
(有符号 64 位整数)的操作。与内置的 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
。