Ve dvojkové číselné soustavě jsou pouze dvě číslice: Všechny ostatní číslice jsou reprezentovány těmito dvěma číslicemi. Například "jedna" je 1, "dva" je 10, "tři" je 11, "čtyři" je 100 atd. Většinou lidé používají číselnou soustavu s deseti číslicemi (čísla 0 až 9.) Této soustavě se říká desítková číselná soustava.
Dělení dvěma ve dvojkové soustavě je velmi snadné. Provádí se vynecháním poslední číslice vpravo od čísla. Tomuto postupu se říká "operace bitového posunu". Pokud bychom například provedli operaci bitového posunu na binárním čísle 100, dostali bychom 10. Protože binární číslo 100 je v desítkové soustavě 4 a binární číslo 10 je v desítkové soustavě 2, dává to smysl.
Dalším příkladem je provedení operace bitového posunu na 1101. Zůstalo by nám 110, ale z konce by vypadla jednička, nikoli nula. To také dává smysl, protože 1101 ve dvojkové soustavě je 13 v desítkové. Pokud vydělíme 13 dvěma, dostaneme 6 se zbytkem 1 (zbyla nám 1).
Počítače
Počítače používají k ukládání informací dvojkovou číselnou soustavu. Informace jsou rozděleny na malé kousky zvané bity. Každý bit je buď 0, nebo 1. Z tohoto důvodu je pro počítač nejrychlejší a nejjednodušší způsob dělení pomocí operací posunu bitů - dělení dvěma. Nahrazení běžného dělení bitovými posuny je způsob, jak provést optimalizaci programu. (Optimalizace programu je snaha o zrychlení a zefektivnění programu.)
V počítačovém programování se někdy používá symbol >> pro znázornění operace posunu bitů. V jazyce Java můžeme požádat počítač, aby provedl úlohu 19 ÷ 2 {\displaystyle 19\div 2}
zápisem 19 >> 2. To je stejné jako zápis 19/2. Obě tyto verze nám dají odpověď 9. Problém nastane, když se pokusíme udělat něco jako úlohu - 4 ÷ 2 {\displaystyle -4\div 2}
. Pokud v jazyce Java napíšeme -3/2, počítač nám řekne, že odpověď je -1. Pokud se však pokusíme zadat -3 >> 2, počítač řekne, že odpověď je -2. To se stane pokaždé, když se pokusíme provést operaci bitového posunu s jedním záporným číslem. Důvod je složitý a souvisí se způsobem, jakým počítač záporná binární čísla ukládá.
Přestože je pro počítače nejrychlejší provádět dělení pomocí operací s posunem bitů, většina počítačového kódu to takto nedělá. Je to proto, že programátoři chtějí, aby jejich programy byly přenositelné a čitelné. Přenositelnost znamená, že program lze spustit na mnoha různých typech počítačů a operačních systémů. Čitelný znamená, že zdrojový kód je snadno čitelný a srozumitelný. Většinou kompilátor (program, který mění zdrojový kód na 0 a 1, kterým počítač rozumí) změní dělení na bitové posuny automaticky.