Funciones para trabajar con números enteros.

Algunas funciones que trabajan con números enteros se encuentran en Kernel:

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

Guardias

is_even (entero)

Determina si un integer incluso.

is_odd (entero)

Determina si integer es impar.

Funciones

dígitos (entero, base \ 10)

Devuelve los dígitos ordenados para el dado integer.

Extended_gcd (n, n)

Devuelve el máximo común divisor extendido de los dos números enteros dados.

floor_div (dividendo, divisor)

Realiza una división de enteros en el suelo.

gcd (entero1, entero2)

Devuelve el máximo común divisor de los dos números enteros dados.

mod (dividendo, divisor)

Calcula el módulo resto de una división entera.

analizar (binario, base \ 10)

Analiza una representación de texto de un número entero.

pow (base, exponente)

Computa base elevado al poder de exponent.

to_charlist (entero, base \ 10)

Devuelve una lista de caracteres que corresponde a la representación de texto de integer en el dado base.

to_string (entero, base \ 10)

Devuelve un binario que corresponde a la representación de texto de integer en el dado base.

undigits (dígitos, base \ 10)

Devuelve el entero representado por el ordenado digits.

is_even (entero)Fuente

Determina si un integer incluso.

Devoluciones true si el dado integer es un número par, de lo contrario devuelve false.

Permitido en cláusulas de guarda.

Ejemplos de

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 (entero)Fuente

Determina si integer es impar.

Devoluciones true si el dado integer es un número impar, de lo contrario devuelve false.

Permitido en cláusulas de guarda.

Ejemplos de

iex>Integer.is_odd(5)true

iex>Integer.is_odd(6)false

iex>Integer.is_odd(-5)true

iex>Integer.is_odd(0)false

dígitos (entero, base \ 10)Fuente

Especificaciones

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

Devuelve los dígitos ordenados para el dado integer.

Un opcional base Se puede proporcionar un valor que represente la base de los dígitos devueltos. Este debe ser un número entero> = 2.

Ejemplos de

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]

Extended_gcd (n, n)Fuente

Especificaciones

extended_gcd(integer(),integer())::non_neg_integer(),integer(),integer()

Devuelve el máximo común divisor extendido de los dos números enteros dados.

Utiliza el algoritmo euclidiano extendido para devolver una tupla de tres elementos con la gcd y los coeficientes m y n de la identidad de Bézout de tal manera que:

gcd(a, b)= m*a + n*b

Por convención, extended_gcd(0, 0) devoluciones 0, 0, 0.

Ejemplos de

iex>Integer.extended_gcd(240,46)2,-9,47
iex>Integer.extended_gcd(46,240)2,47,-9
iex>Integer.extended_gcd(-46,240)2,-47,-9
iex>Integer.extended_gcd(-46,-240)2,-47,9

iex>Integer.extended_gcd(14,21)7,-1,1

iex>Integer.extended_gcd(10,0)10,1,0
iex>Integer.extended_gcd(0,10)10,0,1
iex>Integer.extended_gcd(0,0)0,0,0

floor_div (dividendo, divisor)Fuente

Especificaciones

floor_div(integer(),neg_integer()|pos_integer())::integer()

Realiza una división de enteros en el suelo.

Plantea un ArithmeticError excepción si uno de los argumentos no es un número entero, o cuando el divisor es 0.

Integer.floor_div/2 realiza derribado División entera. Esto significa que el resultado siempre se redondea hacia el infinito negativo.

Si desea realizar una división entera truncada (redondeando hacia cero), use Kernel.div/2 en lugar de.

Ejemplos de

iex>Integer.floor_div(5,2)2
iex>Integer.floor_div(6,-4)-2
iex>Integer.floor_div(-99,2)-50

gcd (entero1, entero2)Fuente

Especificaciones

gcd(integer(),integer())::non_neg_integer()

Devuelve el máximo común divisor de los dos números enteros dados.

El máximo común divisor (MCD) de integer1 y integer2 es el mayor entero positivo que divide a ambos integer1 y integer2 sin dejar remanente.

Por convención, gcd(0, 0) devoluciones 0.

Ejemplos de

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 (dividendo, divisor)Fuente

Especificaciones

mod(integer(),neg_integer()|pos_integer())::integer()

Calcula el módulo resto de una división entera.

Integer.mod/2 utiliza la división en suelo, lo que significa que el resultado siempre tendrá el signo de la divisor.

Plantea un ArithmeticError excepción si uno de los argumentos no es un número entero, o cuando el divisor es 0.

Ejemplos de

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

analizar (binario, base \ 10)Fuente

Especificaciones

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

Analiza una representación de texto de un número entero.

Un opcional base al número entero correspondiente. Si base no se da, se utilizará 10.

Si tiene éxito, devuelve una tupla en forma de integer, remainder_of_binary. De lo contrario :error.

Genera un error si base es menos de 2 o más de 36.

Si desea convertir un entero con formato de cadena directamente en un entero, String.to_integer/1 o String.to_integer/2 se puede utilizar en su lugar.

Ejemplos de

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

pow (base, exponente)Fuente

Especificaciones

pow(integer(),non_neg_integer())::integer()

Computa base elevado al poder de exponent.

Ambos base y exponent deben ser enteros. El exponente debe ser cero o positivo.

Ver Float.pow/2 para exponenciación de exponentes negativos y flotantes.

Ejemplos de

iex>Integer.pow(2,0)1
iex>Integer.pow(2,1)2
iex>Integer.pow(2,10)1024
iex>Integer.pow(2,11)2048
iex>Integer.pow(2,64)0x10000000000000000

iex>Integer.pow(3,4)81
iex>Integer.pow(4,3)64

iex>Integer.pow(-2,3)-8
iex>Integer.pow(-2,4)16

iex>Integer.pow(2,-2)**(ArithmeticError) bad argument in arithmetic expression

to_charlist (entero, base \ 10)Fuente

Especificaciones

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

Devuelve una lista de caracteres que corresponde a la representación de texto de integer en el dado base.

base puede ser un número entero entre 2 y 36. Si no base se da, por defecto es 10.

Incluido por el compilador.

Ejemplos de

iex>Integer.to_charlist(123)'123'

iex>Integer.to_charlist(+456)'456'

iex>Integer.to_charlist(-789)'-789'

iex>Integer.to_charlist(0123)'123'

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 (entero, base \ 10)Fuente

Especificaciones

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

Devuelve un binario que corresponde a la representación de texto de integer en el dado base.

base puede ser un número entero entre 2 y 36. Si no base se da, por defecto es 10.

Incluido por el compilador.

Ejemplos de

iex>Integer.to_string(123)"123"

iex>Integer.to_string(+456)"456"

iex>Integer.to_string(-789)"-789"

iex>Integer.to_string(0123)"123"

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

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

iex>Integer.to_string(882_681_651,36)"ELIXIR"

undigits (dígitos, base \ 10)Fuente

Especificaciones

undigits([integer()],pos_integer())::integer()

Devuelve el entero representado por el ordenado digits.

Un opcional base Se puede proporcionar un valor que represente la base de la digits. La base debe ser un número entero mayor o igual que 2.

Ejemplos de

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

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

iex>Integer.undigits([])0