Integer

整型

用于处理整数的函数。

摘要

功能

digits(integer, base \ 10)

返回给定 integer的有序数字

floor_div(dividend, divisor)

执行泛泛整数除法

gcd(integer1, integer2)

返回两个给定整数的最大公共因子。

is_even(integer)

确定是否integer是偶数

is_odd(integer)

确定integer是否为奇数

mod(dividend, divisor)

计算整数除法的模余数。

parse(binary, base \ 10)

解析整数的文本表示形式。

to_charlist(integer)

返回一个字符列表,该字符列表对应于给定的integer

to_charlist(integer, base)

返回其对应的文本表示charlist integer在给定的base

to_string(integer)

返回对应于文本表示integer的二进制文件

to_string(integer, base)

返回其对应的文本表示二进制integer在给定的base

undigits(digits, base \ 10)

返回由digits顺序表示的整数

功能

digits(integer, base \ 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(dividend, divisor)

floor_div(integer, neg_integer | pos_integer) :: integer

执行泛泛整数除法。

ArithmeticError如果其中一个参数不是整数,或者divisor0,则引发异常。

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(integer1, integer2)

gcd(integer, integer) :: pos_integer

gcd(0, 0) :: 0

返回两个给定整数的最大公共因子。

该最大公约数(GCD)integer1integer2是最大的正整数,既分割integer1integer2不留余数。

按照惯例,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(integer) (macro)

确定是否integer是偶数。

如果给定的integer是偶数,返回true;否则返回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) (macro)

确定是否integer奇数。

如果给定integer为奇数,返回true;否则返回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(dividend, divisor)

mod(integer, neg_integer | pos_integer) :: integer

计算整数除法的模余数。

Integer.mod/2使用泛除法,这意味着结果将始终具有divisor...

ArithmeticError如果其中一个参数不是整数,或者divisor0,则引发异常。

实例

iex> Integer.mod(5, 2) 1 iex> Integer.mod(6, -4) -2

parse(binary, base \ 10)

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

解析整数的文本表示形式。

任选base为相应的整数可以被提供。如果base没有给出,将使用10。

如果成功,则返回形式为{integer, remainder_of_binary}。否则为:error

如果base小于2或大于36,则发生错误。

如果要将字符串格式的整数直接转换为整数,String.to_integer/1String.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(integer)

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

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

返回一个字符列表,该字符列表对应于在给定的整数的基.

base可以是介于2到36之间的整数。

由编译器内联。

实例

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

to_string(integer)

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

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

返回与给定基础中的整数文本表示相对应的二进制文件。

base可以是介于2到36之间的整数。

由编译器内联。

实例

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)

undigits([integer], integer) :: integer

返回由顺序表示的整数digits

任选base值的基数。这个digits可以是>=2的整数。

实例

iex> Integer.undigits([1, 2, 3]) 123 iex> Integer.undigits([1, 4], 16) 20 iex> Integer.undigits([]) 0