Atomics.xor()
La méthode statique Atomics.xor()
calcule le résultat d'un OU exclusif (XOR) binaire entre une valeur donnée et une valeur du tableau partagé à un emplacement donné. Elle renvoie l'ancienne valeur qui était contenue à cette position. Cette opération atomique garantit qu'aucune autre opération d'écriture n'est appliquée tant que la valeur modifiée n'est pas écrite.
Exemple interactif
Syntaxe
js
Atomics.xor(typedArray, index, valeur);
Paramètres
typedArray
-
Un tableau typé entier partagé parmi
Int8Array
,Uint8Array
,Int16Array
,Uint16Array
,Int32Array
ouUint32Array
. index
-
La position du tableau
typedArray
à laquelle calculer le OU exclusif binaire. valeur
-
La valeur avec laquelle on souhaite calculer le OU exclusif binaire.
Valeur de retour
L'ancienne valeur située à cet emplacement du tableau (typedArray[index]
).
Exceptions
- Cette méthode lève
TypeError
si le type detypedArray
n'est pas un des types entiers autorisés. - Cette méthode lève
TypeError
sitypedArray
n'est pas tableau typé partagé. - Cette méthode lève
RangeError
siindex
est en dehors des limites detypedArray
.
Description
L'opération binaire OU exclusif (XOR) renvoie 1 si a
et b
sont différents. La table de vérité correspondante est :
a |
b |
a ^ b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Par exemple, le calcul d'un OU exclusif binaire entre 5 et 1 (5 ^ 1
) renvoie 0100
, qui correspond à 4 en notation décimale.
5 0101 1 0001 ---- 4 0100
Exemples
js
var sab = new SharedArrayBuffer(1024);
var ta = new Uint8Array(sab);
ta[0] = 5;
Atomics.xor(ta, 0, 1); // renvoie 5, l'ancienne valeur
Atomics.load(ta, 0); // 4
Spécifications
Specification |
---|
ECMAScript Language Specification # sec-atomics.xor |
Compatibilité des navigateurs
BCD tables only load in the browser