SIMD.%type%.shiftRightByScalar()

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

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,