Spec-Zone.ru › OCaml

Модуль 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.

val one : nativeint

Целое число, родное для процессора, равное 1.

val minus_one : nativeint

Целое число, родное для процессора, равное -1.

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, за исключением того, что аргументы и результат интерпретируются как беззнаковые целые числа, родные для процессора.

  • С тех пор 4.08
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, за исключением того, что аргументы и результат интерпретируются как беззнаковые целые числа, родные для процессора.

  • С тех пор 4.08
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

abs x является абсолютным значением x. На min_int это само min_int и, следовательно, остается отрицательным.

val size : int

Размер целого числа, родного для процессора, в битах. Это равно 32 на 32-битной платформе и 64 на 64-битной платформе.

val max_int : nativeint

Наибольшее представимое целое число, родное для процессора, либо 231 - 1 на 32-битной платформе, либо 263 - 1 на 64-битной платформе.

val min_int : nativeint

Наименьшее представимое целое число, родное для процессора, либо -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) в целое число, родное для процессора (тип nativeint).

val to_int : nativeint -> int

Преобразовать заданное целое число, родное для процессора (тип nativeint ), в целое число (тип int). Старший бит теряется во время преобразования.

val unsigned_to_int : nativeint -> int option

То же, что Nativeint.to_int, но интерпретирует аргумент как беззнаковое целое число. Возвращает None если беззнаковое значение аргумента не может поместиться в int.

  • С тех пор 4.08
val of_float : float -> nativeint

Преобразовать заданное число с плавающей точкой в целое число, родное для процессора, отбрасывая дробную часть (округлять к 0). Если полученное усечённое число с плавающей точкой выходит за пределы диапазона [Nativeint.min_int, Nativeint.max_int], исключение не генерируется, и возвращается неопределённое, зависящее от платформы, целое число.

val to_float : nativeint -> float

Преобразовать заданное целое число, родное для процессора, в число с плавающей точкой.

val of_int32 : int32 -> nativeint

Преобразовать заданное 32-битное целое число (тип int32) в целое число, родное для процессора.

val to_int32 : nativeint -> int32

Преобразовать заданное целое число, родное для процессора, в 32-битное целое число (тип int32). На 64-битных платформах 64-битное целое число, родное для процессора, берётся по модулю 232, т. е. теряются старшие 32 бита. На 32-битных платформах преобразование точное.

val of_string : string -> nativeint

Преобразовать заданную строку в целое число, родное для процессора. Строка читается в десятичном формате (по умолчанию, или если строка начинается с 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 

Псевдоним для типа целых чисел, родных для процессора.

val compare : t -> t -> int

Функция сравнения для целых чисел, родных для процессора, со спецификацией, аналогичной compare. Вместе с типом t, эта функция compare позволяет модулю Nativeint быть переданным в качестве аргумента функторам Set.Make и Map.Make.

val unsigned_compare : t -> t -> int

То же, что Nativeint.compare, за исключением того, что аргументы интерпретируются как беззнаковые целые числа, родные для процессора.

  • С тех пор 4.08
val equal : t -> t -> bool

Функция проверки на равенство для целых чисел, родных для процессора.

  • С тех пор 4.03
val min : t -> t -> t

Возвращает меньшее из двух аргументов.

  • С тех пор 4.13
val max : t -> t -> t

Возвращает большее из двух аргументов.

  • С тех пор 4.13
val seeded_hash : int -> t -> int

Функция хеширования с заданным значением начального состояния для целых чисел, родных для процессора, с тем же выходным значением, что и Hashtbl.seeded_hash. Эта функция позволяет этому модулю быть переданным в качестве аргумента функтору Hashtbl.MakeSeeded.

  • С тех пор 5.1
val hash : t -> int

Функция хеширования без заданного значения начального состояния для целых чисел, родных для процессора, с тем же выходным значением, что и Hashtbl.hash. Эта функция позволяет этому модулю быть переданным в качестве аргумента функтору Hashtbl.Make.

  • С тех пор 5.1

© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/api/Nativeint.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API