Целое число
Функции для работы с целыми числами.
Некоторые функции, работающие с целыми числами, находятся в Kernel:
Обзор
Защитные условия
- 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(целое_число)Source
Определяет, является ли число 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(целое_число)Source
Определяет, является ли 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)Исходный код
@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)Исходный код
@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(делимое, делитель)Исходный код
@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)Исходный код
@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(делимое, делитель)Исходный код
@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)Исходный код
@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(основание, показатель)Исходный код
@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)Исходный код
@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)Исходный код
@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)Исходный код
@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
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.14.1/Integer.html