W binarnym systemie liczbowym istnieją tylko dwie cyfry: 0 i 1. Wszystkie inne liczby są reprezentowane przez te dwie cyfry. Na przykład, "jeden" to 1, "dwa" to 10, "trzy" to 11, "cztery" to 100, i tak dalej. W większości przypadków ludzie używają dziesięciocyfrowego systemu liczbowego (cyfry od 0 do 9), zwanego dziesiętnym systemem liczbowym.
Dzielenie przez dwa w systemie binarnym jest bardzo proste. Wykonuje się go poprzez usunięcie ostatniej cyfry po prawej stronie liczby. Nazywa się to "operacją przesunięcia bitowego". Na przykład, jeśli wykonamy operację przesunięcia bitowego na liczbie binarnej 100, otrzymamy 10. Ponieważ binarne 100 jest dziesiętne 4, a binarne 10 jest dziesiętne 2, to ma sens.
Innym przykładem jest wykonanie operacji przesunięcia bitowego na 1101. W ten sposób otrzymamy 110, ale na końcu wypadła nam 1, a nie zero. To również ma sens, ponieważ 1101 w systemie binarnym to 13 w dziesiętnym. Jeśli podzielimy 13 przez 2, otrzymamy 6 z resztą 1 (zostaje nam 1).
Komputery
Komputery używają binarnego systemu liczbowego do przechowywania informacji. Informacja jest podzielona na małe kawałki zwane bitami. Każdy bit jest albo 0 albo 1. Z tego powodu, najszybszym i najłatwiejszym sposobem dla komputera do wykonania podziału jest operacja przesunięcia bitowego - podział przez dwa. Zastąpienie zwykłego dzielenia operacjami przesunięcia bitowego jest sposobem na optymalizację programu. (Optymalizacja programu to próba uczynienia programu szybszym i bardziej wydajnym).
W programowaniu komputerowym symbol >> jest czasami używany do pokazywania operacji przesunięcia bitów. W Javie możemy poprosić komputer, aby wykonał zadanie 19 ÷ 2, pisząc 19 >> 2
. Jest to to samo, co napisanie 19/2. Obie te wersje dadzą nam odpowiedź 9. Pojawia się problem, gdy próbujemy zrobić coś takiego jak - 4 ÷ 2 {displaystyle -4}
. W Javie, jeśli napiszemy -3/2, komputer powie nam, że odpowiedzią jest -1. Ale jeśli spróbujemy zrobić -3 >> 2, komputer powie, że odpowiedzią jest -2. Stanie się tak za każdym razem, gdy spróbujemy wykonać operację przesunięcia bitowego z jedną liczbą ujemną. Powód tego jest skomplikowany i ma związek ze sposobem, w jaki ujemne liczby binarne są zapisywane przez komputer.
Mimo że komputery najszybciej wykonują dzielenie za pomocą operacji przesunięcia bitowego, większość kodu komputerowego nie robi tego w ten sposób. Jest to spowodowane tym, że programiści chcą, aby ich programy były przenośne i czytelne. Przenośny oznacza, że program może być uruchamiany na wielu różnych rodzajach komputerów i systemów operacyjnych. Czytelny oznacza, że kod źródłowy jest łatwy do odczytania i zrozumienia. W większości przypadków kompilator (program, który zamienia kod źródłowy na 0 i 1, które komputer może zrozumieć) automatycznie zamieni podział na przesunięcia bitowe.