In een binair getallenstelsel zijn er slechts twee cijfers: 0 en 1. Alle andere getallen worden weergegeven met die twee cijfers. Bijvoorbeeld, "één" is 1, "twee" is 10, "drie" is 11, "vier" is 100, enzovoort. Meestal gebruiken mensen een getallenstelsel met tien cijfers (de getallen 0 tot en met 9.) Dit wordt het decimale getallenstelsel genoemd.
Delen door twee in binair is heel eenvoudig. Het gebeurt door het laatste cijfer aan de rechterkant van het getal te laten vallen. Dit wordt een "bit shift operatie" genoemd. Bijvoorbeeld, als we een bit shift operatie uitvoeren op het binaire getal 100, zouden we 10 krijgen. Aangezien binair 100 decimaal 4 is, en binair 10 decimaal 2, is dit logisch.
Een ander voorbeeld is het uitvoeren van een bit shift operatie op 1101. Dit zou ons 110 opleveren, maar we laten een 1 vallen aan het eind, geen nul. Dit is ook logisch omdat 1101 in binair 13 is in decimaal. Als we 13 delen door 2, krijgen we 6 met een rest van 1 (we houden 1 over).
Computers
Computers gebruiken het binaire getallensysteem om informatie op te slaan. Informatie wordt opgedeeld in kleine stukjes die bits worden genoemd. Elk bit is een 0 of een 1. Daarom is de snelste en gemakkelijkste manier voor een computer om te delen een bitverschuiving -- deling door twee. Het vervangen van een gewone deling door een bitverschuiving is een manier om het programma te optimaliseren. (Programma-optimalisatie is het proberen om een programma sneller en efficiënter te maken).
In computerprogrammering wordt het symbool >> soms gebruikt om een bitverschuiving aan te geven. In Java kunnen we de computer vragen het probleem 19 ÷ 2 uit te voeren
door 19 >> 2 te schrijven. Dit is hetzelfde als 19/2 te schrijven. In beide gevallen krijgen we het antwoord 9. Er is een probleem als je een probleem als - 4 ÷ 2 {{displaystyle -4\div 2} probeert op te losse
. In Java, als we -3/2 schrijven, zal de computer ons vertellen dat het antwoord -1 is. Maar als we proberen -3 >> 2 te doen, zal de computer zeggen dat het antwoord -2 is. Dit zal elke keer gebeuren als we proberen een bit shift operatie te doen met een negatief getal. De reden hiervoor is ingewikkeld, en heeft te maken met de manier waarop negatieve binaire getallen door de computer worden opgeslagen.
Hoewel het voor computers het snelst is om te delen met bit shift operaties, doet de meeste computercode het niet op deze manier. Dit komt omdat programmeurs willen dat hun programma's overdraagbaar en leesbaar zijn. Portable betekent dat een programma op veel verschillende soorten computers en besturingssystemen kan worden uitgevoerd. Leesbaar betekent dat de broncode gemakkelijk te lezen en te begrijpen is. Meestal zal de compiler (een programma dat broncode verandert in 0's en 1's die de computer kan begrijpen) de deling automatisch veranderen in bit-verschuivingen.