Spec-Zone.ru › Elixir 1.7

Целые числа

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

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

  • abs/2
  • div/2
  • max/2
  • min/2
  • rem/2

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

Функции

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 38

to_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

Spec-Zone.ru

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