Источник Целое число
Функции для работы с целыми числами.
Некоторые функции, работающие с целыми числами, находятся в 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(целое число)Источник
Определяет, является ли 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) ~c"123" iex> Integer.to_charlist(+456) ~c"456" iex> Integer.to_charlist(-789) ~c"-789" iex> Integer.to_charlist(0123) ~c"123" iex> Integer.to_charlist(100, 16) ~c"64" iex> Integer.to_charlist(-100, 16) ~c"-64" iex> Integer.to_charlist(882_681_651, 36) ~c"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
© 2012-2024 The Elixir Team
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.17.2/Integer.html