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.