[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/Unsigned_right_shift [Back]  [Original]

Dcalage binaire droite non-sign (>>>) - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Dcalage binaire droite non-sign (>>>)

Baseline
Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

L'oprateur de dcalage binaire droite non-sign (>>>) dcale la squence de bits forme par le premier oprande d'autant de bits vers la droite que la valeur indique par le second oprande. Les bits en excs droite sont carts et ce sont des zros qui sont ajouts gauches. Le bit de signe devient alors ncessairement 0 et le rsultat est donc positif. la diffrence des autres oprateurs binaires, cet oprateur renvoie un entier non-sign sur 32 bits.

Dans cet article

Exemple interactif

const a = 5; //  00000000000000000000000000000101
const b = 2; //  00000000000000000000000000000010
const c = -5; //  11111111111111111111111111111011

console.log(a >>> b); //  00000000000000000000000000000001
// Expected output: 1

console.log(c >>> b); //  00111111111111111111111111111110
// Expected output: 1073741822

Syntaxe

js
a >>> b;

Description

Ce oprateur dcale les bits du premier oprande vers la droite, selon la valeur du deuxime oprande. Les bits dpassant droite sont limins tandis que des zros sont ajouts gauche. Le bit de signe vaut alors 0 et en consquence le rsultat est positif. La valeur fournie par cet oprateur, la diffrence des autres oprateurs binaires, est une valeur entire sur 32 bits non-signe.

Pour les nombres positifts, le dcalage binaire droite et le dcalage binaire droite non-signs renverront le mme rsultat. Par exemple, 9 >>> 2 renvoie 2, galement renvoy par 9 >> 2:

js
        9 (base 10): 00000000000000000000000000001001 (base 2)
                     --------------------------------
  9 >>> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10)

Toutefois, ce n'est pas le cas pour les nombres ngatifs : -9 >>> 2 renverra 1073741821, qui est diffrent de -9 >> 2 (qui renvoie -3) :

js
        -9 (base 10): 11111111111111111111111111110111 (base 2)
                      --------------------------------
  -9 >>> 2 (base 10): 00111111111111111111111111111101 (base 2) = 1073741821 (base 10)

Exemples

Utiliser le dcalage droite non-sign

js
9 >>> 2; // 2
-9 >>> 2; // 1073741821

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-unsigned-right-shift-operator

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page