Basis van programmeren (pseudocode traceren)

x en y zijn 8-bits gehele getallen zonder teken. << en >> zijn logische verschuivingen: vrijgekomen bits worden met 0 gevuld, en bits die buiten de 8 bits worden geschoven, vervallen. ∨ is de bitsgewijze OF. Wat is de waarde van y nadat het volgende programma is uitgevoerd?

8-bit: x ← 13, y
y ← (x << 2) ∨ (x >> 1)
  1. A27
  2. B54
  3. C58
Antwoord en toelichting tonen

Antwoord: B. 54

13 is binair 00001101. x << 2 schuift dat 2 bits naar links tot 00110100 = 52, en x >> 1 schuift het 1 bit naar rechts tot 00000110 = 6 (de laagste 1 die eruit wordt geschoven, vervalt). Hun OF is 00110110 = 54. In 52 en 6 is allebei het bit voor 4 gezet, dus de OF verschilt van de som 52 + 6 = 58.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. ∧ is de bitsgewijze EN. Wat is de waarde van c nadat het volgende programma is uitgevoerd?
  2. x en y zijn 8-bits gehele getallen zonder teken. << en >> zijn logische verschuivingen: vrijgekomen bits worden met 0 gevuld, en bits die buiten de 8 bits worden geschoven, vervallen. ∨ is de bitsgewijze OF. Wat is de waarde van y na de volgende toekenning, met x = 75?
  3. De volgende procedure bubble is een bubblesort die de integer-array data oplopend sorteert. swap(data, j, k) is een procedure die de waarden van data[j] en data[k] verwisselt. Array-indexen beginnen bij 1. Wat moet er op de plaats van 【a】 in het programma staan?
  4. ÷ staat voor deling; bij toekenning aan een variabele van het type integer (ook een argument) worden de cijfers achter de komma weggelaten. Het volgende programma zoekt in de oplopend gesorteerde integer-array data (indexen beginnen bij 1) de index van de eerste waarde die minstens x is, en zet die in lo. x is niet groter dan het laatste element van data. Wat moet er op de plaats van 【a】 in het programma staan?
  5. Een stack wordt voorgesteld door de integer-array st met 5 elementen en de variabele top van het type integer. Alle elementen van st zijn aanvankelijk 0, en top begint bij 0. push(v) telt 1 op bij top en voert dan st[top] ← v uit; pop() geeft de waarde van st[top] terug en trekt dan 1 af van top (de elementen van st veranderen niet). Wat zijn top en st nadat het volgende programma is uitgevoerd?