Em um sistema de número binário, há apenas dois dígitos: 0 e 1. Todos os outros números são representados com esses dois dígitos. Por exemplo, "um" é 1, "dois" é 10, "três" é 11, "quatro" é 100, e assim por diante. Na maioria das vezes as pessoas usam um sistema numérico com dez dígitos (os números de 0 a 9.) Isto é chamado sistema numérico decimal.
A divisão por dois em binário é muito fácil. Isto é feito deixando cair o último dígito à direita do número. Isto é chamado de "operação de bit shift". Por exemplo, se realizássemos uma operação de bit shift no número binário 100, receberíamos 10. Como o binário 100 é decimal 4, e o binário 10 é decimal 2, isto faz sentido.
Outro exemplo é a realização de uma operação de bit shift no 1101. Isto nos deixaria com 110, mas deixamos cair um 1 do final, não um zero. Isto também faz sentido porque o 1101 em binário é 13 em decimal. Se dividirmos 13 por 2, obtemos 6 com um restante de 1 (temos 1 sobrando).
Computadores
Os computadores utilizam o sistema de número binário para armazenar informações. As informações são divididas em pequenos pedaços chamados de bits. Cada bit é um 0 ou um 1. Por isso, a maneira mais rápida e fácil para um computador fazer divisão é por uma operação de deslocamento de bit - divisão por dois. A substituição da divisão regular por turnos de bits é uma forma de fazer a otimização do programa. (A otimização do programa é tentar fazer um programa mais rápido e mais eficiente).
Na programação de computadores, o símbolo >> é às vezes usado para mostrar uma pequena operação de turno. Em Java, podemos pedir ao computador para fazer o problema 19 ÷ 2 {\div 2}
escrevendo 19 >> 2. Isto é o mesmo que escrever 19/2. Estas duas versões nos darão a resposta 9. Há um problema ao tentar fazer algo como - 4 ÷ 2 {\displaystyle -4 {\div 2}
. Em Java, se escrevermos -3/2, o computador nos dirá que a resposta é -1. Mas se tentarmos fazer -3 >> 2, o computador nos dirá que a resposta é -2. Isto acontecerá toda vez que tentarmos fazer uma operação de deslocamento com um número negativo. A razão para isto é complicada, e tem a ver com a forma como os números binários negativos são salvos pelo computador.
Embora seja mais rápido para os computadores fazer divisão usando operações de bit shift, a maioria dos códigos de computador não o faz desta forma. Isto porque os programadores querem que seus programas sejam portáteis e legíveis. Portátil significa que um programa pode ser executado em muitos tipos diferentes de computadores e sistemas operacionais. Legível significa que o código fonte é fácil de ler e entender. Na maioria das vezes, o compilador (um programa que muda o código fonte em 0's e 1's que o computador pode entender) mudará a divisão em bit shifts automaticamente.