Computerarithmetiek

Wat is het resultaat wanneer bij een 8-bits ondertekend geheel getal −8 (1111 1000) met een rekenkundige verschuiving 1 bit naar rechts wordt geschoven?

  1. A124 (0111 1100)
  2. B−16 (1111 0000)
  3. C−4 (1111 1100)
Antwoord en toelichting tonen

Antwoord: C. −4 (1111 1100)

Bij een rekenkundige (aritmetische) verschuiving naar rechts wordt het tekenbit gekopieerd naar het vrijgekomen hoogste bit, zodat 1111 1000 wordt 1111 1100, wat in tweecomplement −4 is. Ook bij negatieve getallen is een verschuiving van 1 bit naar rechts een deling door 2. Bij een logische verschuiving naar rechts, waarbij een 0 in het hoogste bit komt, ontstaat 0111 1100 = 124 en verandert het teken. −16 is het resultaat van een verschuiving van 1 bit naar links. Let erop dat in C het implementatie-afhankelijk was welke van beide optreedt bij het naar rechts schuiven van een ondertekend geheel getal.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Computerarithmetiek

  1. Welke combinatie van de resultaten van −7 / 2 en −7 >> 1 (bij rekenkundige verschuiving naar rechts) voor het type int in C is juist?
  2. Wat is in C het resultaat van het aftrekken van 1 van 0 bij een niet-ondertekend 32-bits geheel getal (unsigned int)?
  3. Hoe wordt bij de optelling van niet-ondertekende gehele getallen vastgesteld dat het resultaat buiten het weer te geven bereik valt (overflow)?
  4. Welke uitspraak over de afstand tussen naburige weer te geven waarden van drijvendekommagetallen is juist?
  5. Wat is de bovengrens, beginnend bij 0, tot waar alle gehele getallen exact kunnen worden weergegeven in een IEEE 754-drijvendekommagetal met enkele precisie?