Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
La méthode statique SIMD.%type%.shiftRightByScalar()
renvoie une nouvelle instance dont le contenu des voies est décalé vers la droite. Selon le type de vecteur, différentes opérations peuvent être utilisées :
- Pour les entiers signés, les valeurs sont décalées vers la droite de façon arithmétique d'un certain nombre de bits (
a >> bits
). - Pour les entiers non signés, les valeurs sont décalées vers la droite de façon logique d'un certain nombre de bits (
a >>> bits
).
Syntaxe
SIMD.Int8x16.shiftRightByScalar(a, bits) SIMD.Int16x8.shiftRightByScalar(a, bits) SIMD.Int32x4.shiftRightByScalar(a, bits) SIMD.Uint8x16.shiftRightByScalar(a, bits) SIMD.Uint16x8.shiftRightByScalar(a, bits) SIMD.Uint32x4.shiftRightByScalar(a, bits)
Paramètres
- a
- Une instance de type SIMD.
bits
- Le nombre de bits dont on souhaite décaler les valeurs des voies.
Valeur de retour
Un nouveau type de données SIMD dont les valeurs des voies ont été décalées vers la droite du nombre de bits souhaité.
Description
Décalage signé
L'opération de décalage binaire arithmétique vers la droite décale les valeurs d'un certain nombre de bits vers la droite. Les bits qui dépassent à droite sont supprimés. Sur la partie gauche, pour les nouveaux bits, on utilise la valeur du bit le plus à gauche avant l'opération.Vu que le nouveau bit le plus à gauche a la même valeur que le précédent, le signe de la valeur est conservé. C'est pour cela qu'on qualifie cette opération d'arithmétique ou qu'on dit qu'elle « propage le signe ».
Pour les nombres positifs, les décalages arithmétique et logique (cf. ci-après) renvoient le même résultat.
Par exemple, en utilisant un décalage binaire arithmétique vers la droite, 5 >> 1
donne 0010
, qui correspond à 2 en notation décimale.
5 0101 ---- 2 0010
Décalage non-signé
L'opération de décalage binaire logique vers la droite décale les valeurs d'un certain nombre de bits vers la droite. Les bits qui dépassent à droite sont supprimés. On introduit des bits à 0 gauche. Le bit de signe devient 0 et le résultat de l'opération est donc toujours positif.
Pour les nombres positifs, les décalages arithmétique et logique (cf. ci-après) renvoient le même résultat.
Ainsi, si on effectue un décalage logique binaire : -8 >>> 1
donne 01111111111111111111111111111100
qui correspond à 2147483644
en notation décimale.
-8 11111111111111111111111111111000 -------------------------------- 2147483644 01111111111111111111111111111100
Exemples
Décalage binaire à droite d'un Int32x4
var a = SIMD.Int32x4(1, 2, 4, -8); SIMD.Int32x4.shiftRightByScalar(a, 1); // Int32x4[0, 1, 2, -4]
Décalage binaire à droite d'un Uint32x4
var a = SIMD.Uint32x4(1, 2, 4, -8); SIMD.Uint32x4.shiftRightByScalar(a, 1); // Uint32x4[0, 1, 2, 2147483644]
Spécifications
Spécification | Statut | Commentaires |
---|---|---|
SIMD La définition de 'SIMDConstructor.shiftRightByScalar' dans cette spécification. |
Projet | Définition initiale. |
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 |