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?
- A124 (0111 1100)
- B−16 (1111 0000)
- 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.