Skip to main content

Matemáticas de flujo de trabajo: funciones de entero

Una función de número entero funciona en uno o más patrones de bits o números binarios a nivel de sus bits individuales. Utiliza una función de número entero a fin de manipular valores para comparaciones y cálculos. Las funciones de entero solo se pueden utilizar con tipos de datos numéricos.

Importante

Si se dan valores dobles/flotantes como argumentos, se truncan a enteros de 64 bits. Los valores negativos se tratan como números enteros de complemento a dos de 64 bits. Es decir, -16 y -16,9999 se tratan como 0xfffffffffffffff0.

BinaryAnd

BinaryAnd(n,m): devuelve un binario de (n) y (m). El resultado es 1 si (n) y (m) son 1, y 0 en caso contrario. Si 0 equivale a Falso y 1 a Verdadero, la operación BinaryAnd funciona como un AND lógico. Ten en cuenta la ausencia del punto decimal en los valores de resultado. El resultado es un número entero, no un valor flotante.

Ejemplo

BinaryAnd(1,1)devuelve 1.

BinaryAnd(1,0)devuelve 0.

BinaryAnd(12,6)devuelve 4.

BinaryAnd(12.99, 6.99)devuelve 4.

BinaryAnd(-12, 6.99)devuelve 4.

BinaryNot

BinaryNot(n): devuelve un Not binario de (n). Los números se tratan como números de 64 bits en complemento a dos.

Ejemplo

BinaryNot(6)devuelve -7.

BinaryNot(2)devuelve -3.

BinaryNot(-1)devuelve 0.

BinaryNot(0)devuelve -1.

BinaryOr

BinaryOr(n,m): devuelve un Or binario de (n) y (m).

Ejemplo

BinaryOr(6,6)devuelve 6.

BinaryOr(6,2)devuelve 6.

BinaryOr(4,2)devuelve 6.

BinaryOr(12,6)devuelve 14.

BinaryXOr

BinaryXOr(n,m): devuelve un XOr binario de (n) y (m).

Ejemplo

BinaryXOr(6,6)devuelve 0.

BinaryXOr(6,2)devuelve 4.

BinaryXOr(6,12)devuelve 10.

ShiftLeft

ShiftLeft(n,b): mueve (n) (un número entero) a la izquierda un total de (b) bits.

ShiftRight

ShiftRight(n,b): mueve (n) (un número entero) a la derecha un total de (b) bits.

Tanto para ShiftLeft como para ShiftRight, el resultado es Int64, por lo que solo hay 64 bits disponibles.

Ejemplo

ShiftLeft(pow(2,62),1) devuelve -pow(2,63). Si se desplaza a la izquierda una vez más, se obtiene cero.

ShiftRight(1,1)devuelve cero.

ShiftRight(-1,1)devuelve Int64_Max.