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 na de volgende toekenning, met x = 75?

8-bit: x ← 75, y
y ← (x << 4) ∨ (x >> 4)
  1. A75
  2. B180
  3. C210
Antwoord en toelichting tonen

Antwoord: B. 180

75 is binair 0100 1011. x << 4 verplaatst de laagste 4 bits naar boven, wat 1011 0000 = 176 geeft (de 0100 die eruit wordt geschoven, vervalt), en x >> 4 verplaatst de hoogste 4 bits naar beneden, wat 0000 0100 = 4 geeft. Hun OF is 1011 0100 = 180: de hoogste en laagste 4 bits zijn verwisseld. Wie x << 4 behandelt als 75 × 16 = 1200 zonder het tot 8 bits te beperken, krijgt een ander resultaat.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. 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?
  2. ÷ 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?
  3. 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?
  4. Een wachtrij gebruikt de array q (4 elementen van het type string) als ring. head en tail beginnen bij 1. enq(v) voert q[tail] ← v uit en daarna tail ← tail mod 4 + 1; deq() geeft de waarde van q[head] terug en voert daarna head ← head mod 4 + 1 uit. In welk element van q wordt „E” opgeslagen als het volgende programma wordt uitgevoerd?
  5. Het volgende programma drukt een gelinkte lijst af, waarvan de elementen met de array next aan elkaar zijn gekoppeld, door die te volgen vanaf het element met index 1. Array-indexen beginnen bij 1. Een next-waarde van 0 markeert het einde van de lijst. Welke reeks waarden wordt afgedrukt?