Retourner à la version anglaise de la documentationOpérations en nombre entier bit par bit
Opérations en nombre entier bit par bit (SPSS Modeler)
Dernière mise à jour : 07 oct. 2024
Ces fonctions permettent aux entiers d'être manipulés en tant que profils binaires représentant des valeurs de complément à 2, où la position binaire N
a la pondération 2**N
.
Les bits sont numérotés en commençant par 0. Ces opérations se comportent comme si le bit de signe d'un entier était décalé vers la gauche à l'infini. Ainsi, partout au-delà du bit le plus significatif, un entier positif a le bit 0 et un entier négatif a le bit 1.
Fonction | Résultat | Descriptif |
---|---|---|
~~ INT1 |
Entier | Produit le complément sur les bits de l'entier INT1. En d'autres cas, il y a 1 dans le résultat pour chaque position de bit pour laquelle INT1 a 0. Il est toujours vrai que ~~ INT =
–(INT + 1) . |
INT1 || INT2 |
Entier | Le résultat de cette opération est l'opérateur sur les bits "inclusif ou" des entiers INT1 et INT2. Autrement dit, un 1 est inséré dans le résultat pour chaque position binaire où existe un 1 dans INT1, dans INT2 ou dans les deux entiers. |
INT1 ||/& INT2 |
Entier | Le résultat de cette opération est l'opérateur sur les bits "exclusif ou" des entiers INT1 et INT2. Autrement dit, un 1 est inséré dans le résultat pour chaque position binaire où existe un 1 soit dans INT1, soit dans INT2, mais pas dans les deux. |
INT1 && INT2 |
Entier | Produit l'opération booléenne ET sur les bits des entiers INT1 et INT2. Cela signifie qu'un 1 est présent dans le résultat pour chaque position binaire où il existe un 1 dans les deux entiers INT1 et INT2. |
INT1 &&~~ INT2 |
Entier | Produit le booléen ET de l'entier INT1 et le complément sur les bits de l'entier INT2. Cela signifie qu'un 1 est présent dans le résultat pour chaque position binaire où il existe un 1 dans INT1 et un 0 dans INT2. Cette opération est identique à INT1 && (~~INT2) . Elle s'avère utile pour l'élimination des bits d'INT1 définis dans INT2. |
INT << N |
Entier | Produit le motif binaire de l'entier INT1, décalé vers la gauche de N positions. Utilisez une valeur N négative pour produire un décalage vers la droite. |
INT >> N |
Entier | Produit le motif binaire de l'entier INT1, décalé vers la droite de N positions. Utilisez une valeur N négative pour produire un décalage vers la gauche. |
INT1 &&=_0 INT2 |
Booléen | Equivalent à l'expression booléenne INT1 && INT2 /== 0 mais plus efficace. |
INT1 &&/=_0 INT2 |
Booléen | Equivalent à l'expression booléenne INT1 && INT2 == 0 mais plus efficace. |
integer_bitcount(INT) |
Entier | Compte le nombre des bits 1 ou 0 dans la représentation de complément à 2 de l'entier INT. Si INT n'est pas négatif, N est le nombre de bits 1. Si INT est négatif, N correspond au nombre de bits 0. En raison de l'extension de signe, il existe un nombre infini de bits 0 dans un entier positif ou de bits 1 dans un entier négatif. L'expression integer_bitcount(INT) = integer_bitcount(-(INT+1)) est toujours vraie. |
integer_leastbit(INT) |
Entier | Renvoie la position binaire N du bit le moins significatif défini dans l'entier INT. N est la puissance de 2 la plus élevée par laquelle il est possible de diviser INT sans reste. |
integer_length(INT) |
Entier | Renvoie la longueur en bits de l'entier INT, sous forme d'entier de complément à 2. C'est-à-dire que N est le plus petit entier tel que INT < (1 << N) if INT >= 0 INT >= (–1 <<
N) if INT < 0 . Si INT n'est pas négatif, la représentation d'INT sous forme d'entier non signé nécessite un champ d'au moins N bits. Sinon, un minimum de N+1 bits est nécessaire pour représenter INT en tant qu'entier signé, quel que soit son signe. |
testbit(INT, N) |
Booléen | Teste le bit de position N dans l'entier INT et renvoie l'état du bit N sous forme de valeur booléenne, vraie (True) s'il s'agit de 1 et fausse (False) pour 0. |