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
如果其中一个参数不是整数,或者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(integer1, integer2)
gcd(integer, integer) :: pos_integer
gcd(0, 0) :: 0
返回两个给定整数的最大公共因子。
该最大公约数(GCD)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(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
如果其中一个参数不是整数,或者divisor
是0
,则引发异常。
实例
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/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(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