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

Преобразовать данное число с плавающей точкой в целевое целое число, отбрасывая дробную часть (обрезать к 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 int32
| Int64 of int64
val repr : t -> repr

Конкретное представление родного целого числа.

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

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

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

Spec-Zone.ru

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