Een rollover in computertermen verwijst naar de situatie waarin een getal de maximale waarde overschrijdt die in een bepaald aantal bits kan worden opgeslagen en de representatie terugkeert naar de laagste waarde. Dit gebeurt meestal bij het rekenen met gehele getallen, waarbij getallen in een vast aantal bits worden opgeslagen en de maximale waarde wordt bepaald door de grootte van het register.
In een 8-bits register is het grootste positieve getal dat kan worden weergegeven bijvoorbeeld 2^7 - 1 =127. Als de waarde met één wordt verhoogd, wordt deze doorgerold naar -128, wat het laagste negatieve getal is dat kan in hetzelfde aantal bits worden weergegeven. Dit komt omdat wanneer het 8e bit is ingesteld op 1, dit een negatief getal aangeeft en de resterende 7 bits worden gebruikt om de grootte weer te geven.
Rollover kan in verschillende scenario's voorkomen, zoals:
Toevoeging: Wanneer u twee grote positieve getallen optelt, kan het resultaat de maximale positieve waarde overschrijden, wat leidt tot een rollover naar een grote negatieve waarde.
Aftrekken: Het aftrekken van een groot positief getal van een klein positief getal kan een rollover naar een negatieve waarde veroorzaken.
Vermenigvuldigen: Als het product van twee grote getallen de maximale waarde overschrijdt, kan er een rollover plaatsvinden.
Divisie: In sommige gevallen, bij het delen van twee grote getallen, is het quotiënt mogelijk niet representeerbaar in het gegeven aantal bits, wat resulteert in een rollover.
Om rollover-fouten te voorkomen, is het essentieel om rekening te houden met de grootte en het bereik van de getallen die worden gebruikt en geschikte technieken toe te passen, zoals type casting of het gebruik van grotere gegevenstypen om grotere waarden te verwerken. Als alternatief kan modulaire rekenkunde worden gebruikt om getallen binnen een bepaald bereik te verwerken. |