Elixir v1.3.2 Integer

Functions for working with integers.

Summary

Functions

Returns the ordered digits for the given non-negative integer

Parses a text representation of an integer

Returns a charlist which corresponds to the text representation of the given integer

Returns a charlist which corresponds to the text representation of integer in the given base

Returns a binary which corresponds to the text representation of integer

Returns a binary which corresponds to the text representation of integer in the given base

Returns the integer represented by the ordered digits

Macros

Determines if an integer is even

Determines if integer is odd

Functions

digits(integer, base \\ 10)

Specs

digits(non_neg_integer, pos_integer) :: [non_neg_integer, ...]

Returns the ordered digits for the given non-negative integer.

An optional base value may be provided representing the radix for the returned digits. This one can be an integer >= 2.

Examples

iex> Integer.digits(101)
[1, 0, 1]

iex> Integer.digits(170, 2)
[1, 0, 1, 0, 1, 0, 1, 0]
parse(binary, base \\ 10)

Specs

parse(binary, 2..36) ::
  {integer, binary} |
  :error |
  no_return

Parses a text representation of an integer.

An optional base to the corresponding integer can be provided. If base is not given, 10 will be used.

If successful, returns a tuple in the form of {integer, remainder_of_binary}. Otherwise :error.

Raises an error if base is less than 2 or more than 36.

If you want to convert a string-formatted integer directly to a integer, String.to_integer/1 or String.to_integer/2 can be used instead.

Examples

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(integer)

Specs

to_charlist(integer) :: charlist

Returns a charlist which corresponds to the text representation of the given integer.

Inlined by the compiler.

Examples

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(integer, base)

Specs

to_charlist(integer, 2..36) :: charlist

Returns a charlist which corresponds to the text representation of integer in the given base.

base can be an integer between 2 and 36.

Inlined by the compiler.

Examples

iex> Integer.to_charlist(100, 16)
'64'

iex> Integer.to_charlist(-100, 16)
'-64'

iex> Integer.to_charlist(882681651, 36)
'ELIXIR'
to_string(integer)

Specs

to_string(integer) :: String.t

Returns a binary which corresponds to the text representation of integer.

Inlined by the compiler.

Examples

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(integer, base)

Specs

to_string(integer, 2..36) :: String.t

Returns a binary which corresponds to the text representation of integer in the given base.

base can be an integer between 2 and 36.

Inlined by the compiler.

Examples

iex> Integer.to_string(100, 16)
"64"

iex> Integer.to_string(-100, 16)
"-64"

iex> Integer.to_string(882681651, 36)
"ELIXIR"
undigits(digits, base \\ 10)

Specs

undigits([integer], integer) :: integer

Returns the integer represented by the ordered digits.

An optional base value may be provided representing the radix for the digits. This one can be an integer >= 2.

Examples

iex> Integer.undigits([1, 2, 3])
123

iex> Integer.undigits([1, 4], 16)
20

iex> Integer.undigits([])
0

Macros

is_even(integer)

Determines if an integer is even.

Returns true if the given integer is an even number, otherwise it returns false.

Allowed in guard clauses.

Examples

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)

Determines if integer is odd.

Returns true if the given integer is an odd number, otherwise it returns false.

Allowed in guard clauses.

Examples

iex> Integer.is_odd(5)
true

iex> Integer.is_odd(6)
false

iex> Integer.is_odd(-5)
true

iex> Integer.is_odd(0)
false