Модуль Targetint
module Targetint: sig .. end
Целые числа, родные для процессора.
Этот модуль предоставляет операции над типом знаковых 32-битных целых чисел (на 32-битных целевых платформах) или знаковыми 64-битными целыми числами (на 64-битных целевых платформах). Этот тип целых чисел имеет точно такой же размер, что и тип указателя в компиляторе C. Все арифметические операции выполняются по модулю 232 или 264 в зависимости от размера слова целевой архитектуры.
Предупреждение: этот модуль нестабилен и является частью compiler-libs.
type t
Тип целевых целых чисел.
val zero : t
Целевое целое число 0.
val one : t
Целевое целое число 1.
val minus_one : t
Целевое целое число -1.
val neg : t -> t
Унарное отрицание.
val add : t -> t -> t
Сложение.
val sub : t -> t -> t
Вычитание.
val mul : t -> t -> t
Умножение.
val div : t -> t -> t
Деление целых чисел. Возбуждает Division_by_zero если второй аргумент равен нулю. Это деление округляет действительное частное аргументов к нулю, как указано для Stdlib.(/).
val unsigned_div : t -> t -> t
То же, что и Targetint.div, за исключением того, что аргументы и результат интерпретируются как беззнаковые целые числа.
val rem : t -> t -> t
Остаток от деления. Если y не равно нулю, результат Targetint.rem x y удовлетворяет следующим свойствам: Targetint.zero <= Nativeint.rem x y < Targetint.abs y и x = Targetint.add (Targetint.mul (Targetint.div x y) y). Если
(Targetint.rem x y)y = 0, Targetint.rem x y возбуждает Division_by_zero.
val unsigned_rem : t -> t -> t
То же, что и Targetint.rem, за исключением того, что аргументы и результат интерпретируются как беззнаковые целые числа.
val succ : t -> t
Последователь. Targetint.succ x есть Targetint.add x Targetint.one.
val pred : t -> t
Предшественник. Targetint.pred x есть Targetint.sub x Targetint.one.
val abs : t -> t
abs x - это абсолютное значение x. На min_int это min_int само по себе и, следовательно, остается отрицательным.
val size : int
Размер целевого родного целого числа в битах.
val max_int : t
Наибольшее представимое целевое целое число, либо 231 - 1 на 32-битной платформе, либо 263 - 1 на 64-битной платформе.
val min_int : t
Наименьшее представимое целевое целое число, либо -231 на 32-битной платформе, либо -263 на 64-битной платформе.
val logand : t -> t -> t
Побитовое логическое И.
val logor : t -> t -> t
Побитовое логическое ИЛИ.
val logxor : t -> t -> t
Побитовое логическое ИСКЛЮЧАЮЩЕЕ ИЛИ.
val lognot : t -> t
Побитовое логическое НЕ.
val shift_left : t -> int -> t
Targetint.shift_left x y сдвигает x влево на y бит. Результат не определен, если y < 0 или y >= bitsize, где bitsize равно 32 на 32-битной платформе и 64 на 64-битной платформе.
val shift_right : t -> int -> t
Targetint.shift_right x y сдвигает x вправо на y бит. Это арифметический сдвиг: бит знака x дублируется и вставляется в освободившиеся биты. Результат не определен, если y < 0 или y >= bitsize.
val shift_right_logical : t -> int -> t
Targetint.shift_right_logical x y сдвигает x вправо на y бит. Это логический сдвиг: нули вставляются в освободившиеся биты независимо от знака x. Результат не определен, если y < 0 или y >= bitsize.
val of_int : int -> t
Преобразовать данное целое число (тип int) в целевое целое число (тип t), модуль размера целевого слова.
val of_int_exn : int -> t
Преобразовать данное целое число (тип int) в целевое целое число (тип t). Возбуждает ошибку, если преобразование неточно.
val to_int : t -> int
Преобразовать данное целевое целое число (тип t) в целое число (тип int). Старший бит теряется во время преобразования.
val of_float : float -> t
Преобразовать данное число с плавающей точкой в целевое целое число, отбрасывая дробную часть (обрезать к 0). Результат преобразования неопределён, если после округления число находится вне диапазона [Targetint.min_int, Targetint.max_int].
val to_float : t -> float
Преобразовать данное целевое целое число в число с плавающей точкой.
val of_int32 : int32 -> t
Преобразовать данное 32-битное целое число (тип int32) в целевое целое число.
val to_int32 : t -> int32
Преобразовать данное целевое целое число в 32-битное целое число (тип int32). На 64-битных платформах 64-битное родное целое число берётся по модулю 232, т.е. теряются 32 старших бита. На 32-битных платформах преобразование точно.
val of_int64 : int64 -> t
Преобразовать данное 64-битное целое число (тип int64) в целевое целое число.
val to_int64 : t -> int64
Преобразовать данное целевое целое число в 64-битное целое число (тип int64).
val of_string : string -> t
Преобразовать данную строку в целевое целое число. Строка считывается в десятичном формате (по умолчанию) или в шестнадцатеричном, восьмеричном или двоичном формате, если строка начинается с 0x, 0o или 0b соответственно. Возбуждает Failure "int_of_string" если заданная строка не является допустимым представлением целого числа или если представленное целое число выходит за пределы диапазона целых чисел, представимых в типе nativeint.
val to_string : t -> string
Возвращает строковое представление своего аргумента в десятичном формате.
val compare : t -> t -> int
Функция сравнения для целевых целых чисел со спецификацией, аналогичной Stdlib.compare. Вместе с типом t, эта функция compare позволяет передавать модуль Targetint в качестве аргумента функционалам Set.Make и Map.Make.
val unsigned_compare : t -> t -> int
То же, что и Targetint.compare, за исключением того, что аргументы интерпретируются как беззнаковые целые числа.
val equal : t -> t -> bool
Функция проверки равенства для целевых целых чисел.
type repr =
|
| Int32 of
|
|
| Int64 of
|
val repr : t -> repr
Конкретное представление родного целого числа.
val print : Format.formatter -> t -> unit
Вывод целевого целого числа в форматирователь.
© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/api/compilerlibref/Targetint.html