Processors vermijden het gebruik van oneven getallen niet *in de zin dat ze op de een of andere manier inherent incompatibel zijn*. De verwarring komt waarschijnlijk voort uit de manier waarop we gegevens *aanspreken* en *organiseren* binnen een verwerker.
Hier is een overzicht:
* Gegevensuitlijning: Processors werken vaak het meest efficiënt met gegevens die zijn afgestemd op geheugenadressen die een veelvoud zijn van hun grootte (een geheel getal van 4 bytes zou bijvoorbeeld idealiter moeten beginnen op een adres dat deelbaar is door 4). Dit verbetert de geheugentoegangssnelheid. Hoewel dit in sommige situaties indirect *kan* leiden tot het schijnbaar ‘vermijden van oneven getallen’, is het geen fundamentele beperking. De processor *gebruikt* nog steeds oneven genummerde adressen; het *start* daar misschien niet een datastructuur van meerdere bytes.
* Instructie adressering: Instructies zelf bevinden zich op geheugenadressen. Deze adressen kunnen, en zijn vaak, oneven nummers. De processor haalt instructies op en voert deze uit, ongeacht of hun adressen even of oneven zijn.
* Bitmanipulatie: In de kern manipuleren processors individuele bits, en er is geen inherente voorkeur voor even of oneven bitposities. Oneven genummerde bits zijn net zo belangrijk als even bits bij berekeningen en gegevensrepresentatie.
* Registreergebruik: Registers (interne processoropslag) worden numeriek geadresseerd, en deze adressen kunnen even of oneven zijn. Nogmaals, er is geen inherente beperking.
Samenvattend:processors *vermijden* oneven getallen niet. Deze perceptie zou kunnen voortvloeien uit optimalisatiestrategieën met betrekking tot gegevensuitlijning en geheugentoegang, die prioriteit geven aan het efficiënt ophalen van gegevens in plaats van het fundamenteel vermijden van oneven getallen. De processor zelf werkt met en manipuleert even en oneven getallen op bitniveau. |