Spec-Zone.ru › Elixir 1.16

Исходный код Целое число

Функции для работы с целыми числами.

Некоторые функции, работающие с целыми числами, находятся в Kernel:

  • Kernel.abs/1
  • Kernel.div/2
  • Kernel.max/2
  • Kernel.min/2
  • Kernel.rem/2

Краткое описание

Ограничения

is_even(целое число)

Определяет, является ли число integer чётным.

is_odd(целое число)

Определяет, является ли integer нечётным.

Функции

digits(целое число, основание \\ 10)

Возвращает упорядоченные цифры для данного integer.

extended_gcd(a, b)

Возвращает расширенное наибольшее общее делитель двух данных целых чисел.

floor_div(делимое, делитель)

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

gcd(целое число1, целое число2)

Возвращает наибольший общий делитель двух заданных целых чисел.

mod(делимое, делитель)

Вычисляет остаток от целочисленного деления.

parse(бинарный, основание \\ 10)

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

pow(основание, показатель)

Вычисляет base в степени exponent.

to_charlist(целое число, основание \\ 10)

Возвращает список символов, соответствующий текстовому представлению integer в заданном base.

to_string(целое число, основание \\ 10)

Возвращает бинарное значение, соответствующее текстовому представлению integer в заданном base.

undigits(цифры, основание \\ 10)

Возвращает целое число, представленное упорядоченными digits.

Ограничения

is_even(целое число)Исходный код

Определяет, является ли integer чётным.

Возвращает true если заданное integer — чётное число, в противном случае возвращает false.

Допускается в условиях ограничений.

Примеры

iex> Integer.is_even(10)
true

iex> Integer.is_even(5)
false

iex> Integer.is_even(-10)
true

iex> Integer.is_even(0)
true

is_odd(целое число)Исходный код

Определяет, является ли integer нечётным.

Возвращает true если заданное integer — нечётное число, в противном случае возвращает false.

Допускается в условиях ограничений.

Примеры

iex> Integer.is_odd(5)
true

iex> Integer.is_odd(6)
false

iex> Integer.is_odd(-5)
true

iex> Integer.is_odd(0)
false

Функции

digits(целое число, основание \\ 10)Source

@spec digits(integer(), pos_integer()) :: [integer(), ...]

Возвращает упорядоченные цифры для данного integer.

Можно указать необязательное значение base, представляющее основание для возвращаемых цифр. Оно должно быть целым числом ≥ 2.

Примеры

iex> Integer.digits(123)
[1, 2, 3]

iex> Integer.digits(170, 2)
[1, 0, 1, 0, 1, 0, 1, 0]

iex> Integer.digits(-170, 2)
[-1, 0, -1, 0, -1, 0, -1, 0]

extended_gcd(a, b)Source

@spec extended_gcd(integer(), integer()) :: {non_neg_integer(), integer(), integer()}

Возвращает расширенное наибольшее общее делитель двух данных целых чисел.

Эта функция использует расширенный алгоритм Евклида для возвращения тройки с gcd и коэффициентами m и n тождества Безу, такие что:

gcd(a, b) = m*a + n*b

По соглашению, extended_gcd(0, 0) возвращает {0, 0, 0}.

Примеры

iex> Integer.extended_gcd(240, 46)
{2, -9, 47}
iex> Integer.extended_gcd(46, 240)
{2, 47, -9}
iex> Integer.extended_gcd(-46, 240)
{2, -47, -9}
iex> Integer.extended_gcd(-46, -240)
{2, -47, 9}

iex> Integer.extended_gcd(14, 21)
{7, -1, 1}

iex> Integer.extended_gcd(10, 0)
{10, 1, 0}
iex> Integer.extended_gcd(0, 10)
{10, 0, 1}
iex> Integer.extended_gcd(0, 0)
{0, 0, 0}

floor_div(делимое, делитель)Source

@spec floor_div(integer(), neg_integer() | pos_integer()) :: integer()

Выполняет целочисленное деление с округлением к ближайшему меньшему целому.

Выбрасывает исключение ArithmeticError, если один из аргументов не является целым числом или если divisor равно 0.

Эта функция выполняет целочисленное деление с округлением к ближайшему меньшему целому, что означает, что результат всегда будет округляться до отрицательной бесконечности.

Если нужно выполнить целочисленное деление с усечением (округление к нулю), используйте Kernel.div/2 вместо этого.

Примеры

iex> Integer.floor_div(5, 2)
2
iex> Integer.floor_div(6, -4)
-2
iex> Integer.floor_div(-99, 2)
-50

gcd(целое1, целое2)Source

@spec gcd(integer(), integer()) :: non_neg_integer()

Возвращает наибольший общий делитель двух данных целых чисел.

Наибольший общий делитель (НОД) integer1 и integer2 — это наибольшее положительное целое число, которое делит как integer1 , так и integer2 без остатка.

По соглашению, gcd(0, 0) возвращает 0.

Примеры

iex> Integer.gcd(2, 3)
1

iex> Integer.gcd(8, 12)
4

iex> Integer.gcd(8, -12)
4

iex> Integer.gcd(10, 0)
10

iex> Integer.gcd(7, 7)
7

iex> Integer.gcd(0, 0)
0

mod(делимое, делитель)Source

@spec mod(integer(), neg_integer() | pos_integer()) :: integer()

Вычисляет остаток от целочисленного деления.

Эта функция выполняет целочисленное деление с округлением к ближайшему меньшему целому, что означает, что результат всегда имеет знак divisor.

Выбрасывает исключение ArithmeticError, если один из аргументов не является целым числом или когда divisor равно 0.

Примеры

iex> Integer.mod(5, 2)
1
iex> Integer.mod(6, -4)
-2

parse(бинарное значение, основание \\ 10)Source

@spec parse(binary(), 2..36) :: {integer(), remainder_of_binary :: binary()} | :error

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

Можно указать необязательное base соответствующее целое число. Если base не указано, используется 10.

В случае успеха возвращает тройку в виде {integer, remainder_of_binary}. В противном случае :error.

Вызывает ошибку, если base меньше 2 или больше 36.

Для непосредственного преобразования строки с целым числом в целое число можно использовать String.to_integer/1 или String.to_integer/2.

Примеры

iex> Integer.parse("34")
{34, ""}

iex> Integer.parse("34.5")
{34, ".5"}

iex> Integer.parse("three")
:error

iex> Integer.parse("34", 10)
{34, ""}

iex> Integer.parse("f4", 16)
{244, ""}

iex> Integer.parse("Awww++", 36)
{509216, "++"}

iex> Integer.parse("fab", 10)
:error

iex> Integer.parse("a2", 38)
** (ArgumentError) invalid base 38

pow(основание, показатель)Source

@spec pow(integer(), non_neg_integer()) :: integer()

Вычисляет base в степени exponent.

И base, и exponent должны быть целыми числами. Показатель степени должен быть нулём или положительным.

См. Float.pow/2 для возведения в степень с отрицательными показателями и для чисел с плавающей точкой.

Примеры

iex> Integer.pow(2, 0)
1
iex> Integer.pow(2, 1)
2
iex> Integer.pow(2, 10)
1024
iex> Integer.pow(2, 11)
2048
iex> Integer.pow(2, 64)
0x10000000000000000

iex> Integer.pow(3, 4)
81
iex> Integer.pow(4, 3)
64

iex> Integer.pow(-2, 3)
-8
iex> Integer.pow(-2, 4)
16

iex> Integer.pow(2, -2)
** (ArithmeticError) bad argument in arithmetic expression

to_charlist(целое число, основание \\ 10)Source

@spec to_charlist(integer(), 2..36) :: charlist()

Возвращает список символов, соответствующий текстовому представлению integer в данном base.

base может быть целым числом от 2 до 36. Если base не задан, он по умолчанию равен 10.

Встроенно компилятором.

Примеры

iex> Integer.to_charlist(123)
'123'

iex> Integer.to_charlist(+456)
'456'

iex> Integer.to_charlist(-789)
'-789'

iex> Integer.to_charlist(0123)
'123'

iex> Integer.to_charlist(100, 16)
'64'

iex> Integer.to_charlist(-100, 16)
'-64'

iex> Integer.to_charlist(882_681_651, 36)
'ELIXIR'

to_string(целое число, основание \\ 10)Source

@spec to_string(integer(), 2..36) :: String.t()

Возвращает двоичное значение, соответствующее текстовому представлению integer в данном base.

base может быть целым числом от 2 до 36. Если base не задан, он по умолчанию равен 10.

Встроенно компилятором.

Примеры

iex> Integer.to_string(123)
"123"

iex> Integer.to_string(+456)
"456"

iex> Integer.to_string(-789)
"-789"

iex> Integer.to_string(0123)
"123"

iex> Integer.to_string(100, 16)
"64"

iex> Integer.to_string(-100, 16)
"-64"

iex> Integer.to_string(882_681_651, 36)
"ELIXIR"

undigits(цифры, основание \\ 10)Source

@spec undigits([integer()], pos_integer()) :: integer()

Возвращает целое число, представленное упорядоченными digits.

Необязательное значение base может быть предоставлено, представляющее основание для digits. Основание должно быть целым числом, большим или равным 2.

Примеры

iex> Integer.undigits([1, 2, 3])
123

iex> Integer.undigits([1, 4], 16)
20

iex> Integer.undigits([])
0

Скачать версию ePub

Создано с помощью ExDoc (v0.32.2) для языка программирования Elixir

© 2012-2024 The Elixir Team
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.16.3/Integer.html

Spec-Zone.ru

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