Note : Cette méthode ne fait plus partie du brouillon pour la spécification SIMD. Elle sera retirée bientôt (cf. bug 1201934).
La méthode statique SIMD.%type%.shiftRightArithmeticByScalar()
renvoie une nouvelle instance dont les valeurs des voies sont décalées à droite (au sens arithmétique) par un nombre de bits donné (a >> bits
).
Syntaxe
SIMD.Int8x16.shiftRightArithmeticByScalar(a, bits) SIMD.Int16x8.shiftRightArithmeticByScalar(a, bits) SIMD.Int32x4.shiftRightArithmeticByScalar(a, bits) SIMD.Uint8x16.shiftRightArithmeticByScalar(a, bits) SIMD.Uint16x8.shiftRightArithmeticByScalar(a, bits) SIMD.Uint32x4.shiftRightArithmeticByScalar(a, bits)
Paramètres
- a
- Une instance d'un type SIMD.
bits
- Le nombres de bits dont on souhaite décaler les valeurs par la droite.
Valeur de retour
Un nouveau vecteur SIMD dont les valeurs des voies sont les valeurs du vecteur original, décalées sur la droite (au sens arithmétique) du nombre donné de bits (a >> bits
).
Description
Le décalage binaire à droite arithmétique décale les bits de la représentation binaire d'un nombre sur la droite. Les bits qui se retrouvent trop à droite ne sont pas conservés. Les bits les plus à gauche sont générés à partir du bit de signe. Cela permet de conserver le signe du nombre, c'est pour cette raison qu'on appelle ce décalage « arithmétique » (ou aussi « avec propagation du signe »).
Pour les nombres positifs, le décalage binaire à droite arithmétique et le décalage binaire à droite logique entraînent les mêmes résultats.
Si on effectue le décalage arithmétique suivante 5 >> 1
on obtient 0010
, ce qui correspond à 2 en base décimale.
5 0101 ---- 2 0010
Exemples
Décalage binaire à droite arithmétique d'un vecteur Int32x4
var a = SIMD.Int32x4(1, 2, 4, -8); SIMD.Int32x4.shiftRightArithmeticByScalar(a, 1); // Int32x4[0, 1, 2, -4]
Spécifications
Cette méthode ne fait plus partie du brouillon de la spécification et sera bientôt retiré de SpiderMonkey quil l'implémentait.
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | Pas de support | Nightly build | Pas de support | Pas de support | Pas de support |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | Pas de support | Pas de support | Nightly build | Pas de support | Pas de support | Pas de support |