aboutsummaryrefslogtreecommitdiff
path: root/files/de/web/javascript/reference/global_objects/atomics/xor/index.html
blob: 913fcc1298a458488cfeea25a67ccfe4c8c4c9d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
---
title: Atomics.xor()
slug: Web/JavaScript/Reference/Global_Objects/Atomics/xor
tags:
  - Atomics
  - JavaScript
  - Method
  - Shared Memory
translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/xor
---
<div>{{JSRef}}</div>

<p>Die statische <code><strong>Atomics</strong></code><strong><code>.xor()</code></strong> Methode berechnet eine bitweises XOR mit einem gegebenen Wert auf einem Wert an einer gegebenen Position im Array und gibt den alten Wert an der Position zurück. Die atomare Operation garantiert, dass kein anderer Schreibprozess während der Operation durchgeführt wird.</p>

<div>{{EmbedInteractiveExample("pages/js/atomics-xor.html")}}</div>



<h2 id="Syntax">Syntax</h2>

<pre class="syntaxbox">Atomics.and(typedArray, index, value)
</pre>

<h3 id="Parameter">Parameter</h3>

<dl>
 <dt><code>typedArray</code></dt>
 <dd>Ein geteiltes getrypted Integer Array. Eines von {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} oder {{jsxref("Uint32Array")}}.</dd>
 <dt><code>index</code></dt>
 <dd>Die Position in <code>typedArray</code>, mit der das bitweise XOR berechnet wird.</dd>
 <dt><code>value</code></dt>
 <dd>Die Zahl, mit der das bitweise XOR berechnet wird.</dd>
</dl>

<h3 id="Rückgabewert">Rückgabewert</h3>

<p>Der alte Wert an der gegebenen Position (<code>typedArray[index]</code>).</p>

<h3 id="Exceptions">Exceptions</h3>

<ul>
 <li>Erzeugt einen {{jsxref("TypeError")}}, wenn <code>typedArray</code> nicht von einem erlaubten Integer Typ ist.</li>
 <li>Erzeugt eine {{jsxref("TypeError")}}, wenn <code>typedArray</code> kein geteilter Arraytyp ist.</li>
 <li>Erzeugt ein {{jsxref("RangeError")}}, wenn der <code>index</code> nicht in den Grenzen von <code>typedArray</code> ist.</li>
</ul>

<h2 id="Beschreibung">Beschreibung</h2>

<p>Die bitweise XOR Operation ergibt nur 1, wenn genau ein Werte, <code>a</code> oder <code>b</code>, 1 ist. Die Wahrheitstabelle für die XOR Operation ist:</p>

<table class="standard-table">
 <thead>
  <tr>
   <th><code>a</code></th>
   <th><code>b</code></th>
   <th><code>a &amp; b</code></th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>0</td>
   <td>0</td>
   <td>0</td>
  </tr>
  <tr>
   <td>0</td>
   <td>1</td>
   <td>1</td>
  </tr>
  <tr>
   <td>1</td>
   <td>0</td>
   <td>1</td>
  </tr>
  <tr>
   <td>1</td>
   <td>1</td>
   <td>0</td>
  </tr>
 </tbody>
</table>

<p>Zum Beispiel resultiert ein bitweises XOR auf <code>5 &amp; 1</code> in <code>0100</code>, was im Dezimalsystem 4 ist.</p>

<pre>5  0101
1  0001
   ----
4  0100</pre>

<h2 id="Beispiele">Beispiele</h2>

<pre class="brush: js">var sab = new SharedArrayBuffer(1024);
var ta = new Uint8Array(sab);
ta[0] = 5;

Atomics.xor(ta, 0, 1); // returns 5, the old value
Atomics.load(ta, 0);  // 4</pre>

<h2 id="Spezifikationen">Spezifikationen</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Spezifikation</th>
   <th scope="col">Status</th>
   <th scope="col">Kommentar</th>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-atomics.xor', 'Atomics.xor')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td>Initiale Definition in ES2017.</td>
  </tr>
 </tbody>
</table>

<h2 id="Browserkompatibilität">Browserkompatibilität</h2>



<p>{{Compat("javascript.builtins.Atomics.xor")}}</p>

<h2 id="Siehe_auch">Siehe auch</h2>

<ul>
 <li>{{jsxref("Atomics")}}</li>
 <li>{{jsxref("Atomics.and()")}}</li>
 <li>{{jsxref("Atomics.or()")}}</li>
</ul>

<p> </p>