Grundlagen der Programmierung (Pseudocode nachverfolgen)

⊕ ist das bitweise exklusive ODER. Welche Werte haben x und y, nachdem das folgende Programm ausgeführt wurde?

integer: x ← 12, y ← 10
x ← x ⊕ y
y ← x ⊕ y
x ← x ⊕ y
  1. Ax = 10, y = 12
  2. Bx = 6, y = 12
  3. Cx = 12, y = 10
Antwort und Erläuterung anzeigen

Antwort: A. x = 10, y = 12

Binär gilt 12 = 1100 und 10 = 1010. Die erste Zuweisung ergibt x = 1100 ⊕ 1010 = 0110 = 6, die zweite y = 0110 ⊕ 1010 = 1100 = 12 und die dritte x = 0110 ⊕ 1100 = 1010 = 10. So werden die Werte ohne Hilfsvariable vertauscht; genutzt wird, dass zweimaliges XOR mit demselben Wert den ursprünglichen Wert wiederherstellt (a ⊕ b ⊕ b = a).

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. x und y sind vorzeichenlose 8-Bit-Ganzzahlen. << und >> sind logische Verschiebungen: Frei werdende Bits werden mit 0 gefüllt, und Bits, die aus den 8 Bit hinausgeschoben werden, werden verworfen. ∨ ist das bitweise ODER. Welchen Wert hat y, nachdem das folgende Programm ausgeführt wurde?
  2. ∧ ist das bitweise UND. Welchen Wert hat c, nachdem das folgende Programm ausgeführt wurde?
  3. x und y sind vorzeichenlose 8-Bit-Ganzzahlen. << und >> sind logische Verschiebungen: Frei werdende Bits werden mit 0 gefüllt, und Bits, die aus den 8 Bit hinausgeschoben werden, werden verworfen. ∨ ist das bitweise ODER. Welchen Wert hat y bei x = 75 nach der folgenden Zuweisung?
  4. Die folgende Prozedur bubble ist ein Bubblesort, der das ganzzahlige Array data aufsteigend sortiert. swap(data, j, k) ist eine Prozedur, die die Werte von data[j] und data[k] vertauscht. Die Array-Indizes beginnen bei 1. Was gehört an die Stelle von 【a】 im Programm?
  5. ÷ ist die Division; wird das Ergebnis einer ganzzahligen Variablen (auch einem Funktionsargument) zugewiesen, wird der Nachkommaanteil abgeschnitten. Das folgende Programm ermittelt in lo den Index des ersten Werts, der mindestens x ist, im aufsteigend sortierten ganzzahligen Array data (die Indizes beginnen bei 1). x ist nicht größer als das letzte Element von data. Was gehört an die Stelle von 【a】 im Programm?