Skip to main content

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.