Spec-Zone.ru › OCaml

Модуль 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 int32
| Int64 of int64
val repr : t -> repr

Внутреннее представление машинного целого числа.

val print : Format.formatter -> t -> unit

Выводит целое число целевой платформы в форматтер.

© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/api/compilerlibref/Targetint.html

Spec-Zone.ru

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