Spec-Zone.ru › Elixir 1.8

Целые числа

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

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

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

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

Защитные функции

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

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

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

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

Функции

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

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

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

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

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

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

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

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

parse(двоичное представление, основание \\ 10)

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

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

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

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

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

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

Возвращает двоичное представление текстового представления integer.

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

Возвращает двоичное представление текстового представления 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)

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(0, 0) :: 0
gcd(integer(), integer()) :: pos_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(делимое, делитель)

(с версии 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.8.2/Integer.html

Spec-Zone.ru

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