Traducción no oficial al español rioplatense, generada con IA (Claude Sonnet 5.5) bajo la dirección y revisión de Jassiel Ovando. No es una publicación de Typst GmbH ni cuenta con su aval; ante cualquier duda, prevalece la documentación oficial en inglés. ¿Un error de traducción o una sugerencia? Reportalo. Tipografía: Reforma, de PampaType.

intDesde: siempreIr al código fuente

Un entero: un número entero positivo, un número entero negativo o cero.

Typst almacena los enteros con signo con la representación de complemento a dos en 64 bits. Esto permite almacenar números hasta 263−1 (int.max) y hasta −263 (int.min).

Los enteros también se pueden especificar en hexadecimal, octal o binario empezando con los prefijos: 0x, 0o o 0b.

Podés convertir un valor en entero con el constructor de este tipo.

Ejemplo

#(1 + 2) \ #(2 - 5) \ #(3 + 4 < 8) #0xff \ #0o10 \ #0b1001 #(int(3.8) + int("26")) / Max: #int.max / Min: #int.min

Sintaxis

Los enteros de Typst se pueden ingresar en modo código con los dígitos decimales 0–9. Además, si un 0 solitario va seguido de x, o o b (0x, 0o, 0b), Typst tratará los dígitos siguientes como un número hexadecimal (base 16), octal (base 8) o binario (base 2).

Los números hexadecimales usan las letras a–f o A–F para los valores 10–15.

Typst dará un error si se escribe un entero mayor que int.max. Si esto pasa, quizás quieras usar en su lugar un número de punto flotante, agregando un punto al final del número.

Typst se diferencia de otros lenguajes de programación en que no trata los enteros negativos como tokens individuales en su sintaxis. En cambio, una entrada como -6 se trata como el operador de negación aplicado al entero positivo 6. Esto puede causar un problema al intentar escribir el entero negativo mínimo -9223372036854775808, ya que 9223372036854775808 es mayor que int.max. Para escribir el entero negativo mínimo, usá en su lugar int.min.

Esto también significa que, si querés incrustar un entero negativo en el marcado, vas a tener que usar paréntesis para agrupar el operador de negación: #(-6).

Constructor
Signo de pregunta
Ir al código fuente

Convierte un valor en un entero. Produce un error si se intenta analizar una cadena de texto no válida o producir un entero que no entra en un entero con signo de 64 bits.

ExpandirVer ejemplo
#int(false) \ #int(true) \ #int(2.7) \ #int(decimal("3.8")) \ #(int("27") + int("4")) \ #int("beef", base: 16)

value
bool o int o float o decimal o str
ObligatorioPosicional
Signo de pregunta

El valor que se debe convertir en entero.

basePor defecto: 10

La base (raíz) para analizar cadenas de texto, entre 2 y 36.

Por encima de la base 10, Typst acepta las letras a–z o A–Z para los valores 10–35.

Constantes
Signo de pregunta

max
intDesde: siempre
Ir al código fuente

El valor máximo que se puede representar como entero de Typst: 263−1.

ExpandirVer ejemplo
#int.max \ // In hexadecimal: #0x7FFFFFFFFFFFFFFF

min
intDesde: siempre
Ir al código fuente

El valor mínimo que se puede representar como entero de Typst: −263.

Intentar escribir este entero explícitamente como -9223372036854775808 en lugar de usar int.min producirá un error. Para más información, leé la sección Sintaxis.

ExpandirVer ejemplo
#int.min

Funciones
Signo de pregunta

signumDesde: 0.11.0Ir al código fuente

Calcula el signo de un entero.

ExpandirVer ejemplo
#(5).signum() \ #(-5).signum() \ #(0).signum()
self.signum() → int

bit-notDesde: 0.11.0Ir al código fuente

Calcula el NOT bit a bit de un entero.

A los fines de esta función, el operando se trata como un entero con signo de 64 bits.

ExpandirVer ejemplo
#4.bit-not() \ #(-1).bit-not()
self.bit-not() → int

bit-andDesde: 0.11.0Ir al código fuente

Calcula el AND bit a bit entre dos enteros.

A los fines de esta función, los operandos se tratan como enteros con signo de 64 bits.

ExpandirVer ejemplo
#128.bit-and(192)
self.bit-and(int) → int

rhs
int
ObligatorioPosicional
Signo de pregunta

El operando derecho del AND bit a bit.

bit-orDesde: 0.11.0Ir al código fuente

Calcula el OR bit a bit entre dos enteros.

A los fines de esta función, los operandos se tratan como enteros con signo de 64 bits.

ExpandirVer ejemplo
#64.bit-or(32)
self.bit-or(int) → int

rhs
int
ObligatorioPosicional
Signo de pregunta

El operando derecho del OR bit a bit.

bit-xorDesde: 0.11.0Ir al código fuente

Calcula el XOR bit a bit entre dos enteros.

A los fines de esta función, los operandos se tratan como enteros con signo de 64 bits.

ExpandirVer ejemplo
#64.bit-xor(96)
self.bit-xor(int) → int

rhs
int
ObligatorioPosicional
Signo de pregunta

El operando derecho del XOR bit a bit.

bit-lshiftDesde: 0.11.0Ir al código fuente

Desplaza los bits del operando a la izquierda la cantidad especificada.

A los fines de esta función, el operando se trata como un entero con signo de 64 bits. Se producirá un error si el resultado es demasiado grande para entrar en un entero de 64 bits.

ExpandirVer ejemplo
#33.bit-lshift(2) \ #(-1).bit-lshift(3)
self.bit-lshift(int) → int

shift
int
ObligatorioPosicional
Signo de pregunta

La cantidad de bits que se desplazan. No debe ser negativa.

bit-rshiftDesde: 0.11.0Ir al código fuente

Desplaza los bits del operando a la derecha la cantidad especificada. Por defecto realiza un desplazamiento aritmético (extiende el bit de signo hacia la izquierda, de modo que los números negativos siguen siendo negativos), pero esto se puede cambiar con el parámetro logical.

A los fines de esta función, el operando se trata como un entero con signo de 64 bits.

ExpandirVer ejemplo
#64.bit-rshift(2) \ #(-8).bit-rshift(2) \ #(-8).bit-rshift(2, logical: true)
self.bit-rshift() → int

shift
int
ObligatorioPosicional
Signo de pregunta

La cantidad de bits que se desplazan. No debe ser negativa.

Se permiten desplazamientos mayores que 63 y harán que el valor de retorno se sature. Para números no negativos, el valor de retorno se satura en 0, mientras que, para números negativos, se satura en -1 si logical es false, o en 0 si es true. Este comportamiento es coherente con aplicar esta operación varias veces. Por lo tanto, el desplazamiento siempre tendrá éxito.

logicalPor defecto: false

Activa o desactiva que se realice un desplazamiento lógico (sin signo) a la derecha en lugar de uno aritmético. Si es true, los operandos negativos no conservarán su bit de signo y los bits que aparezcan a la izquierda después del desplazamiento serán 0. Este parámetro no tiene efecto en operandos no negativos.

from-bytesDesde: 0.12.0Ir al código fuente

Convierte bytes en un entero.

ExpandirVer ejemplo
#int.from-bytes(bytes((0, 0, 0, 0, 0, 0, 0, 1))) \ #int.from-bytes(bytes((1, 0, 0, 0, 0, 0, 0, 0)), endian: "big")
int.from-bytes() → int

bytes
bytes
ObligatorioPosicional
Signo de pregunta

Los bytes que se deben convertir en entero.

Deben tener una longitud máxima de 8 para que el resultado entre en un entero con signo de 64 bits.

endianPor defecto: "little"

El orden de bytes (endianness) de la conversión.

VarianteDetalles
"big"Orden de bytes big-endian: el byte de mayor valor está al comienzo de los bytes.
"little"Orden de bytes little-endian: el byte de menor valor está al comienzo de los bytes.

signedPor defecto: true

Si los bytes se deben tratar como un entero con signo. Si es true y el bit más significativo está activado, el número resultante será negativo.

to-bytesDesde: 0.12.0Ir al código fuente

Convierte un entero en bytes.

ExpandirVer ejemplo
#array(10000.to-bytes(endian: "big")) \ #array(10000.to-bytes(size: 4))
self.to-bytes() → bytes

endianPor defecto: "little"

El orden de bytes (endianness) de la conversión.

VarianteDetalles
"big"Orden de bytes big-endian: el byte de mayor valor está al comienzo de los bytes.
"little"Orden de bytes little-endian: el byte de menor valor está al comienzo de los bytes.

sizePor defecto: 8

El tamaño en bytes de los bytes resultantes (debe ser al menos cero). Si el entero es demasiado grande para entrar en el tamaño especificado, la conversión truncará los bytes restantes según el orden de bytes. Para mantener el mismo valor resultante, si el orden es big-endian, el truncamiento se hará en los bytes de más a la derecha. En cambio, si el orden es little-endian, el truncamiento se hará en los bytes de más a la izquierda.

Tené en cuenta que, si el entero es negativo y el tamaño no alcanza para que el número entre, al pasar los bytes resultantes a int.from-bytes, el número resultante podría ser positivo, ya que el bit más significativo podría no estar en