Matematica: funzioni bit per bit
Una funzione bit per bit opera su uno o più modelli di bit o numeri binari a livello dei singoli bit. Utilizza una funzione bit per bit per modificare i valori per confronti e calcoli. Bitwise functions can only be used with Number data types and will produce an INT64 result.
Importante
If double/float values are given as arguments, they are truncated to 64-bit integers. Negative values are treated as two’s complement, 64-bit integer numbers. That is, -16 and -16.9999 are treated as 0xfffffffffffffff0.
BinaryAnd
BinaryAnd(n,m)
: restituisce un binario di (n) e (m). Il risultato è 1 se n e m sono uguali a 1, altrimenti è 0. Se 0 è uguale a False e 1 a True, l'operazione BinaryAnd funziona come un And logico. Note the absence of the decimal point on the result values. The result is an integer, not a double/float value.
Esempio
BinaryAnd(1,1)
restituisce 1.
BinaryAnd(1,0)
restituisce 0.
BinaryAnd(12,6)
returns 4.
BinaryAnd(12.99, 6.99)
returns 4.
BinaryAnd(-12, 6.99)
returns 4.
BinaryNot
BinaryNot(n)
: restituisce un NOT binario di (n). Numbers are treated as 64-bit, two's complement numbers.
Esempio
BinaryNot(6)
returns -7.
BinaryNot(2)
restituisce 3.
BinaryNot(-1)
restituisce 0.
BinaryNot(0)
restituisce -1.
BinaryOr
BinaryOr(n,m)
: restituisce un OR binario di (n) e (m).
Esempio
BinaryOr(6,6)
returns 6.
BinaryOr(6,2)
returns 6.
BinaryOr(4,2)
returns 6.
BinaryOr(12,6)
returns 14.
BinaryXOR
BinaryXOr(n,m)
: restituisce un XOR binario di (n) e (m).
Esempio
BinaryXOr(6,6)
restituisce 0.
BinaryXOr(6,2)
returns 4.
BinaryXOr(6,12)
restituisce 10.
ShiftLeft
ShiftLeft(n,b)
: sposta a sinistra (n) (come numero intero) di (b) bit.
ShiftRight
ShiftRight(n,b)
: sposta a destra (n) (come numero intero) di (b) bit.
For both ShiftLeft and ShiftRight the result is an Int64, so only 64 bits are available.
Esempio
ShiftLeft(pow(2,62),1)
returns
-pow(2,63)
. Shift it left once more and you get zero.
ShiftRight(1,1)
returns zero.
ShiftRight(-1,1)
returns
Int64_Max
.