Целые числа
Функции для работы с целыми числами.
Некоторые функции, работающие с целыми числами, находятся в Kernel:
Краткое описание
Функции
- digits(целое число, основание \\ 10)
Возвращает упорядоченные цифры для данного
integer- floor_div(делимое, делитель)
Выполняет целочисленное деление с округлением до ближайшего целого числа.
- gcd(целое число1, целое число2)
Возвращает наибольший общий делитель двух заданных целых чисел.
- is_even(целое число)
Определяет, является ли целое число чётным.
- is_odd(целое число)
Определяет, является ли целое число нечётным.
- mod(делимое, делитель)
Вычисляет остаток от целочисленного деления.
- parse(бинарный, основание \\ 10)
Разбирает текстовое представление целого числа.
- to_charlist(целое число)
Возвращает список символов, соответствующий текстовому представлению данного
integer- to_charlist(целое число, основание)
Возвращает список символов, соответствующий текстовому представлению
integerв заданномbase.- to_string(целое число)
Возвращает бинарное представление текстового представления
integer- to_string(целое число, основание)
Возвращает бинарное представление текстового представления
integerв заданномbase.- undigits(цифры, основание \\ 10)
Возвращает целое число, представленное упорядоченными
digits.
Функции
digits(целое число, основание \\ 10)
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]
floor_div(делимое, делитель)(с версии 1.4.0)
floor_div(integer(), neg_integer() | pos_integer()) :: integer()
Выполняет целочисленное деление с округлением до ближайшего целого числа.
Вызывает исключение ArithmeticError, если один из аргументов не является целым числом, или когда divisor является 0.
Integer.floor_div/2 выполняет целочисленное деление с округлением до ближайшего целого числа. Это означает, что результат всегда округляется до ближайшего целого в сторону отрицательной бесконечности.
Если вам нужно выполнить целочисленное деление с усечением (округление к нулю), используйте 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)(с версии 1.5.0)
gcd(integer(), integer()) :: pos_integer()
gcd(0, 0) :: 0
Возвращает наибольший общий делитель двух заданных целых чисел.
Наибольший общий делитель (НОД) 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
is_even(целое число)(макрос)
Определяет, является ли целое число чётным.
Возвращает 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(целое число)(макрос)
Определяет, является ли целое число нечётным.
Возвращает 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
mod(делимое, делитель)(с версии 1.4.0)
mod(integer(), neg_integer() | pos_integer()) :: integer()
Вычисляет остаток от целочисленного деления.
Integer.mod/2 использует деление с округлением до ближайшего целого, что означает, что результат всегда будет иметь знак divisor.
Вызывает исключение ArithmeticError, если один из аргументов не является целым числом, или когда divisor является 0.
Примеры
iex> Integer.mod(5, 2) 1 iex> Integer.mod(6, -4) -2
parse(бинарный, основание \\ 10)
parse(binary(), 2..36) :: {integer(), 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 38to_charlist(целое число)
to_charlist(integer()) :: charlist()
Возвращает список символов, соответствующий текстовому представлению данного integer.
Встраивается компилятором.
Примеры
iex> Integer.to_charlist(123) '123' iex> Integer.to_charlist(+456) '456' iex> Integer.to_charlist(-789) '-789' iex> Integer.to_charlist(0123) '123'
to_charlist(целое число, основание)
to_charlist(integer(), 2..36) :: charlist()
Возвращает список символов, соответствующий текстовому представлению integer в заданном base.
base может быть целым числом от 2 до 36.
Встраивается компилятором.
Примеры
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(целое число)
to_string(integer()) :: String.t()
Возвращает бинарное представление текстового представления integer.
Встраивается компилятором.
Примеры
iex> Integer.to_string(123) "123" iex> Integer.to_string(+456) "456" iex> Integer.to_string(-789) "-789" iex> Integer.to_string(0123) "123"
to_string(целое число, основание)
to_string(integer(), 2..36) :: String.t()
Возвращает бинарное представление текстового представления integer в заданном base.
base может быть целым числом от 2 до 36.
Встраивается компилятором.
Примеры
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)
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.7.4/Integer.html