Spec-Zone.ru › OCaml

Модуль Int64

module Int64: sig .. end

64-битные целые числа.

Этот модуль предоставляет операции над типом int64 знаковых 64-битных целых чисел. В отличие от встроенного типа int, тип int64 гарантированно имеет ширину ровно 64 бита на всех платформах. Все арифметические операции над int64 выполняются по модулю 264

Примечание по производительности: значения типа int64 занимают больше места в памяти, чем значения типа int, и арифметические операции над int64 обычно медленнее, чем над int. Используйте int64 только тогда, когда приложение требует точной 64-битной арифметики.

Литералы для 64-битных целых чисел имеют суффикс L:

      let zero: int64 = 0L
      let one: int64 = 1L
      let m_one: int64 = -1L
    
val zero : int64

64-битное целое число 0.

val one : int64

64-битное целое число 1.

val minus_one : int64

64-битное целое число -1.

val neg : int64 -> int64

Унарное отрицание.

val add : int64 -> int64 -> int64

Сложение.

val sub : int64 -> int64 -> int64

Вычитание.

val mul : int64 -> int64 -> int64

Умножение.

val div : int64 -> int64 -> int64

Деление целых чисел.

  • Возбуждает Division_by_zero если второй аргумент равен нулю. Это деление округляет действительное частное своих аргументов к нулю, как указано для (/).
val unsigned_div : int64 -> int64 -> int64

То же, что и Int64.div, за исключением того, что аргументы и результат интерпретируются как беззнаковые 64-битные целые числа.

  • Since 4.08
val rem : int64 -> int64 -> int64

Остаток от деления. Если y не равно нулю, результат Int64.rem x y удовлетворяет следующему свойству: x = Int64.add (Int64.mul (Int64.div x y) y) (Int64.rem x y). Если y = 0, Int64.rem x y возбуждает Division_by_zero.

val unsigned_rem : int64 -> int64 -> int64

То же, что и Int64.rem, за исключением того, что аргументы и результат интерпретируются как беззнаковые 64-битные целые числа.

  • Since 4.08
val succ : int64 -> int64

Преемник. Int64.succ x это Int64.add x Int64.one.

val pred : int64 -> int64

Предшественник. Int64.pred x это Int64.sub x Int64.one.

val abs : int64 -> int64

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

val max_int : int64

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

val min_int : int64

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

val logand : int64 -> int64 -> int64

Битовая логическая конъюнкция.

val logor : int64 -> int64 -> int64

Битовая логическая дизъюнкция.

val logxor : int64 -> int64 -> int64

Битовая логическая исключающая дизъюнкция.

val lognot : int64 -> int64

Битовая логическая инверсия.

val shift_left : int64 -> int -> int64

Int64.shift_left x y сдвигает x влево на y бит. Результат не определён, если y < 0 или y >= 64.

val shift_right : int64 -> int -> int64

Int64.shift_right x y сдвигает x вправо на y бит. Это арифметический сдвиг: бит знака x дублируется и вставляется в освободившиеся биты. Результат не определён, если y < 0 или y >= 64.

val shift_right_logical : int64 -> int -> int64

Int64.shift_right_logical x y сдвигает x вправо на y бит. Это логический сдвиг: нули вставляются в освободившиеся биты независимо от знака x. Результат не определён, если y < 0 или y >= 64.

val of_int : int -> int64

Преобразование заданного целого числа (тип int) в 64-битное целое число (тип int64).

val to_int : int64 -> int

Преобразование заданного 64-битного целого числа (тип int64) в целое число (тип int). На 64-битных платформах 64-битное целое число берётся по модулю 263, то есть старший бит теряется при преобразовании. На 32-битных платформах 64-битное целое число берётся по модулю 231, то есть верхние 33 бита теряются при преобразовании.

val unsigned_to_int : int64 -> int option

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

  • Since 4.08
val of_float : float -> int64

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

val to_float : int64 -> float

Преобразование заданного 64-битного целого числа в число с плавающей точкой.

val of_int32 : int32 -> int64

Преобразование заданного 32-битного целого числа (тип int32) в 64-битное целое число (тип int64).

val to_int32 : int64 -> int32

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

val of_nativeint : nativeint -> int64

Преобразование заданного системного целого числа (тип nativeint) в 64-битное целое число (тип int64).

val to_nativeint : int64 -> nativeint

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

val of_string : string -> int64

Преобразование заданной строки в 64-битное целое число. Строка читается в десятичной системе (по умолчанию, или если строка начинается с 0u) или в шестнадцатеричной, восьмеричной или двоичной системе, если строка начинается с 0x, 0o или 0b соответственно.

Префикс 0u считывает входные данные как беззнаковое целое число в диапазоне [0, 2*Int64.max_int+1]. Если входное значение превышает Int64.max_int, оно преобразуется в знаковое целое число Int64.min_int + input - Int64.max_int - 1.

Символ _ (подчеркивание) может появляться где угодно в строке и игнорируется.

  • Возбуждает Failure если заданная строка не является допустимым представлением целого числа или если представленное целое число выходит за пределы диапазона целых чисел, представимых типом int64.
val of_string_opt : string -> int64 option

То же, что и of_string, но возвращает None вместо возбуждения.

  • Since 4.05
val to_string : int64 -> string

Возвращает строковое представление своего аргумента в десятичной системе.

val bits_of_float : float -> int64

Возвращает внутреннее представление данного числа с плавающей точкой в соответствии с битовым расположением формата 'double' чисел с плавающей точкой IEEE 754. Бит 63 результата представляет знак числа с плавающей точкой; биты 62-52 представляют (смещённый) экспонент; биты 51-0 представляют мантиссу.

val float_of_bits : int64 -> float

Возвращает число с плавающей точкой, внутреннее представление которого в соответствии с битовым расположением формата 'double' чисел с плавающей точкой IEEE 754 является заданным int64.

type t = int64 

Псевдоним для типа 64-битных целых чисел.

val compare : t -> t -> int

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

val unsigned_compare : t -> t -> int

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

  • Since 4.08
val equal : t -> t -> bool

Функция проверки равенства для int64.

  • Since 4.03
val min : t -> t -> t

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

  • Since 4.13
val max : t -> t -> t

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

  • Since 4.13
val seeded_hash : int -> t -> int

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

  • Since 5.1
val hash : t -> int

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

  • Since 5.1

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

Spec-Zone.ru

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