Tracks
/
Cairo
Cairo
/
Temario
/
Números enteros
Nú

Números enteros en Cairo

1 ejercicio

Acerca de Números enteros

Un integer es un número sin parte fraccionaria. En Cairo, la declaración de tipo de los números enteros indica el número de bits que el programador puede usar para almacenar el valor.

Los enteros sin signo solo pueden representar números positivos y el número 0 (cero), lo cual puede resultar beneficioso en ciertos contextos de programación, como la indexación de arrays y la gestión de memoria.

Cairo también admite enteros con signo, que empiezan por el prefijo i. Estos enteros pueden representar tanto valores positivos como negativos, con tamaños que van de i8 a i128. Cada variante con signo puede almacenar números desde $-2^{n-1}$ hasta $2^{n-1} - 1$, ambos inclusive, donde $n$ es el número de bits que usa esa variante. Por ejemplo, un i8 puede almacenar números desde $-2^7$ hasta $2^7 - 1$, es decir, de $-128$ a $127$.

Longitud Sin signo Con signo
8 bits u8 i8
16 bits u16 i16
32 bits u32 i32
64 bits u64 i64
128 bits u128 i128
256 bits u256 ------

También existe un tipo de entero especial llamado usize, que actualmente no es más que un alias de u32. Es posible que este tipo desempeñe un papel más diferenciado en el futuro, cuando Cairo pueda compilarse a MLIR (Multi-Level Intermediate Representation).

Literales de números enteros en Cairo

Puedes escribir literales de números enteros en cualquiera de las formas que se muestran en la siguiente tabla. Ten en cuenta que los literales numéricos que pueden ser de varios tipos numéricos admiten un sufijo de tipo, como 57_u8, para designar el tipo. También es posible usar un separador visual _ en los literales numéricos para mejorar la legibilidad del código.

Literales numéricos Ejemplo
Decimal 98222
Hexadecimal 0xff
Octal 0o04321
Binario 0b01

Entonces, ¿cómo sabes qué tipo de entero usar? Intenta estimar el valor máximo que puede tener tu entero y elige el tamaño adecuado. La situación principal en la que usarías usize es al indexar algún tipo de colección.

Operaciones numéricas

Cairo admite las operaciones matemáticas básicas que cabría esperar para todos los tipos de enteros: suma, resta, multiplicación, división y residuo. La división entera trunca hacia cero hasta el entero más cercano. El siguiente código muestra cómo usarías cada operación numérica en una instrucción let:

fn main() {
    // addition
    let sum = 5_u128 + 10_u128;

    // subtraction
    let difference = 95_u128 - 4_u128;

    // multiplication
    let product = 4_u128 * 30_u128;

    // division
    let quotient = 56_u128 / 32_u128; // result is 1
    let quotient = 64_u128 / 32_u128; // result is 2

    // remainder
    let remainder = 43_u128 % 5_u128; // result is 3
}

Cada expresión de estas instrucciones usa un operador matemático y se evalúa como un único valor, que después se asigna a una variable.

Puedes encontrar una lista de todos los operadores que ofrece Cairo en The Cairo Book.

Editar en GitHub El enlace se abre en una nueva ventana o pestaña

Aprende Números enteros

La práctica está bloqueada

Desbloquea 2 ejercicios más para practicar Números enteros