Logische schakelingen
Wat gebeurt er met de waarde als een binair getal 1 bit naar links wordt geschoven? (zonder overloop)
- AWordt 2 keer zo groot
- BWordt de helft
- CNeemt met 1 toe
Antwoord en toelichting tonen
Antwoord: A. Wordt 2 keer zo groot
In binair heeft elk cijfer een gewicht dat telkens 2 keer zo groot is, dus 1 bit naar links schuiven met een 0 op de laagste positie verdubbelt de waarde en 1 bit naar rechts schuiven halveert (naar beneden afgerond). Schuiven over n bits is 2ⁿ keer en 1/2ⁿ. Omdat het veel kleiner en sneller is dan een vermenigvuldiger of deler, vervangt de compiler x × 8 door x << 3. Bij een rechtsschuiving van getallen met teken moet een rekenkundige verschuiving worden gebruikt die het tekenbit dupliceert, anders worden negatieve getallen niet correct gedeeld.