Модуль Nativeint
module Nativeint: sig .. end
Целые числа, родные для процессора.
Этот модуль предоставляет операции над типом nativeint знаковых 32-битных целых чисел (на 32-битных платформах) или знаковых 64-битных целых чисел (на 64-битных платформах). Этот тип целых чисел имеет ровно такую же ширину, как тип указателя в компиляторе C. Все арифметические операции над nativeint выполняются по модулю 232 или 264, в зависимости от размера слова архитектуры.
Примечание о производительности: значения типа nativeint занимают больше места в памяти, чем значения типа int, а арифметические операции над nativeint обычно медленнее, чем над int. Используйте nativeint только тогда, когда приложение требует дополнительной точности по сравнению с типом int.
Литтералы для целых чисел имеют суффикс n:
let zero: nativeint = 0n
let one: nativeint = 1n
let m_one: nativeint = -1n
val zero : nativeint
Целое число 0 типа native integer.
val one : nativeint
Целое число 1 типа native integer.
val minus_one : nativeint
Целое число -1 типа native integer.
val neg : nativeint -> nativeint
Унарное отрицание.
val add : nativeint -> nativeint -> nativeint
Сложение.
val sub : nativeint -> nativeint -> nativeint
Вычитание.
val mul : nativeint -> nativeint -> nativeint
Умножение.
val div : nativeint -> nativeint -> nativeint
Целочисленное деление. Это деление округляет вещественное частное своих аргументов до ближайшего целого в сторону нуля, как указано для (/).
-
Возбуждает исключение
Division_by_zeroесли второй аргумент равен нулю.
val unsigned_div : nativeint -> nativeint -> nativeint
То же, что и Nativeint.div, за исключением того, что аргументы и результат интерпретируются как беззнаковые целые числа типа native integer.
- С момента 4.08.0
val rem : nativeint -> nativeint -> nativeint
Целочисленный остаток. Если y не равен нулю, результат 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 unsigned_rem : nativeint -> nativeint -> nativeint
То же, что и Nativeint.rem, за исключением того, что аргументы и результат интерпретируются как беззнаковые целые числа типа native integer.
- С момента 4.08.0
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
Размер в битах целого числа типа native integer. Он равен 32 на 32-битной платформе и 64 на 64-битной платформе.
val max_int : nativeint
Наибольшее представимое целое число типа native integer, либо 231 - 1 на 32-битной платформе, либо 263 - 1 на 64-битной платформе.
val min_int : nativeint
Наименьшее представимое целое число типа native integer, либо -231 на 32-битной платформе, либо -263 на 64-битной платформе.
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. Результат неопределен, если y < 0 или y >= bitsize.
val of_int : int -> nativeint
Преобразует данное целое число (типа int) в целое число типа native integer (типа nativeint).
val to_int : nativeint -> int
Преобразует данное целое число типа native integer (типа nativeint ) в целое число (типа int). Старший бит теряется во время преобразования.
val unsigned_to_int : nativeint -> int option
То же, что и Nativeint.to_int, но интерпретирует аргумент как беззнаковое целое число. Возвращает None если беззнаковое значение аргумента не помещается в int.
- С момента 4.08.0
val of_float : float -> nativeint
Преобразует данное число с плавающей точкой в целое число типа native integer, отбрасывая дробную часть (округляя к 0). Если преобразованное число с плавающей точкой выходит за пределы [Nativeint.min_int, Nativeint.max_int], исключение не возбуждается, и возвращается неопределённое целое число, зависящее от платформы.
val to_float : nativeint -> float
Преобразует данное целое число типа native integer в число с плавающей точкой.
val of_int32 : int32 -> nativeint
Преобразует данное 32-битное целое число (типа int32) в целое число типа native integer.
val to_int32 : nativeint -> int32
Преобразует данное целое число типа native integer в 32-битное целое число (типа int32). На 64-битных платформах 64-битное целое число типа native integer берется по модулю 232, т.е. теряются старшие 32 бита. На 32-битных платформах преобразование точное.
val of_string : string -> nativeint
Преобразует данную строку в целое число типа native integer. Строка читается в десятичном формате (по умолчанию, или если строка начинается с 0u) или в шестнадцатеричном, восьмеричном или двоичном формате, если строка начинается с 0x, 0o или 0b соответственно.
Префикс 0u читает ввод как беззнаковое целое число в диапазоне [0, 2*Nativeint.max_int+1]. Если ввод превышает Nativeint.max_int, он преобразуется в знаковое целое число Int64.min_int + input - Nativeint.max_int - 1.
-
Возбуждает исключение
Failureесли заданная строка не является допустимым представлением целого числа или если представленное целое число выходит за пределы диапазона целых чисел, представимых в типеnativeint.
val of_string_opt : string -> nativeint option
То же, что и of_string, но возвращает None вместо возбуждения исключения.
- С момента 4.05
val to_string : nativeint -> string
Возвращает строковое представление своего аргумента в десятичном формате.
type t = nativeint
Псевдоним для типа целых чисел native integer.
val compare : t -> t -> int
val unsigned_compare : t -> t -> int
То же, что и Nativeint.compare, за исключением того, что аргументы интерпретируются как беззнаковые целые числа типа native integer.
- С момента 4.08.0
val equal : t -> t -> bool
Функция равенства для целых чисел типа native int.
- С момента 4.03.0
val min : t -> t -> t
Возвращает меньшее из двух аргументов.
- С момента 4.13.0
val max : t -> t -> t
Возвращает большее из двух аргументов.
- С момента 4.13.0
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Nativeint.html