Mathématiques de workflow : fonctions d'entier
Une fonction d'entier s'applique à un ou plusieurs modèles binaires ou numériques binaires au niveau de leurs bits individuels. Utilisez une fonction d'entier pour manipuler les valeurs dans le cadre de comparaisons et de calculs. Les fonctions d'entier ne peuvent être utilisées qu'avec des données de type numérique.
Important
Si des valeurs doubles/flottantes sont fournies en tant qu'arguments, elles sont tronquées en entiers signés sur 64 bits. Les valeurs négatives sont traitées comme des entiers signés sur 64 bits représentés en complément à deux. En d'autres termes, -16 et -16,9999 sont traités comme 0xfffffffffffffff0.
BinaryAnd
BinaryAnd(n,m): renvoie une valeur binaire de (n) et (m). Le résultat est 1 si n et m sont tous deux 1, sinon 0. Si 0 est assimilé à « Faux » et 1 à « Vrai », l'opération BinaryAnd fonctionne comme un AND logique. Notez l'absence de virgule décimale sur les valeurs de résultat. Le résultat est un entier, et non une valeur flottante.
Exemple
BinaryAnd(1,1)renvoie 1.
BinaryAnd(1,0)renvoie 0.
BinaryAnd(12,6)renvoie 4.
BinaryAnd(12.99, 6.99)renvoie 4.
BinaryAnd(-12, 6.99)renvoie 4.
BinaryNot
BinaryNot(n): renvoie une valeur binaire NOT de (n). Les nombres sont interprétés comme des entiers signés sur 64 bits, représentés en complément à deux.
Exemple
BinaryNot(6)renvoie -7.
BinaryNot(2)renvoie -3.
BinaryNot(-1)renvoie 0.
BinaryNot(0)renvoie -1.
BinaryOr
BinaryOr(n,m): renvoie une valeur binaire OR de (n) et (m).
Exemple
BinaryOr(6,6)renvoie 6.
BinaryOr(6,2)renvoie 6.
BinaryOr(4,2)renvoie 6.
BinaryOr(12,6)renvoie 14.
BinaryXOr
BinaryXOr(n,m): renvoie une valeur binaire XOR de (n) et (m).
Exemple
BinaryXOr(6,6)renvoie 0.
BinaryXOr(6,2)renvoie 4.
BinaryXOr(6,12)renvoie 10.
ShiftLeft
ShiftLeft(n,b): décale (n) (un entier) à gauche de (b) bits.
ShiftRight
ShiftRight(n,b): décale (n) (un entier) à droite de (b) bits.
Pour ShiftLeft et ShiftRight, le résultat est Int64, donc seuls 64 bits sont disponibles.
Exemple
ShiftLeft(pow(2,62),1)renvoie-pow(2,63). Si vous le déplacez à nouveau vers la gauche, vous obtenez zéro.
ShiftRight(1,1)renvoie zéro.
ShiftRight(-1,1)renvoie Int64_Max.