Opérateur >>> de décalage droit non signé au niveau du bit

expression1 >>> expression2

Identique à l'opérateur de décalage vers la droite au niveau du bit (>>), à la différence qu'il ne préserve pas le signe de l'expression d'origine car les bits de gauche sont toujours remplacés par des 0.

Les nombres à virgule flottante sont convertis en entiers en supprimant les chiffres après la virgule. Les entiers positifs sont convertis en valeur hexadécimale non signée dont la valeur maximale est de 4294967295 ou 0xFFFFFFFF. Les valeurs supérieures au maximum perdent leurs chiffres les plus significatifs lorsqu'elles sont converties, de façon à ce que la valeur demeure à 32 bits. Les nombres négatifs sont convertis en valeur hexadécimale non signée par l'intermédiaire de la notation complément à deux, la valeur minimale étant de -2147483648 ou 0x800000000. Les nombres inférieurs à cette valeur minimale sont convertis en complément à deux avec une plus grande précision et perdent leurs chiffres les plus significatifs.

Disponibilité : ActionScript 1.0 ; Flash Lite 2.0

Opérandes

expression1 : Number - Nombre ou expression à décaler vers la droite.

expression2 : Number - Nombre ou expression à convertir en entier compris entre 0 et 31.

Valeur renvoyée

Number - Résultat de l'opération au niveau du bit.

Exemple

L'exemple suivant convertit -1 en entier 32 bits et le décale de 1 bit vers la droite :

var x:Number = -1 >>> 1; 
trace(x); // Renvoie : 2147483647 

Ceci est dû au fait que -1 en décimal équivaut à 11111111111111111111111111111111 en binaire (trente-deux 1), et que lorsque vous effectuez un décalage de 1 bit vers la droite (non signé), le bit le moins significatif (le plus à droite) est supprimé, et le bit le plus significatif (le plus à gauche) est remplacé par la valeur 0. Le résultat obtenu est 01111111111111111111111111111111 en binaire, soit l'entier 32 bits 2147483647.

Voir aussi

Opérateur >>= de décalage droit au niveau du bit et d'affectation