Grundlagen der Programmierung (Pseudocode nachverfolgen)

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?

8-bit: x ← 13, y
y ← (x << 2) ∨ (x >> 1)
  1. A27
  2. B54
  3. C58
Antwort und Erläuterung anzeigen

Antwort: B. 54

13 ist binär 00001101. x << 2 verschiebt um 2 Bit nach links zu 00110100 = 52, und x >> 1 verschiebt um 1 Bit nach rechts zu 00000110 = 6 (die hinausgeschobene unterste 1 wird verworfen). Ihr ODER ist 00110110 = 54. In 52 und 6 ist jeweils das Bit für 4 gesetzt, daher unterscheidet sich das ODER von der Summe 52 + 6 = 58.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. ∧ ist das bitweise UND. Welchen Wert hat c, nachdem das folgende Programm ausgeführt wurde?
  2. 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?
  3. 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?
  4. ÷ 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?
  5. Ein Stack wird durch das ganzzahlige Array st mit 5 Elementen und die ganzzahlige Variable top dargestellt. Alle Elemente von st sind anfangs 0, und top beginnt bei 0. push(v) addiert 1 zu top und führt dann st[top] ← v aus; pop() gibt den Wert von st[top] zurück und subtrahiert dann 1 von top (die Elemente von st werden nicht verändert). Welche Werte haben top und st, nachdem das folgende Programm ausgeführt wurde?