Модуль 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
Преобразует заданное число с плавающей точкой в целое число целевой платформы, отбрасывая дробную часть (округляя к нулю). Результат преобразования не определён, если после усечения число находится вне диапазона [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-2026 INRIA.
https://ocaml.org/manual/5.5/api/compilerlibref/Targetint.html