Deslocamento de bits
Origem: Wikipédia, a enciclopédia livre.
O deslocamento de bits é uma operação elementar de lógica binária que consiste na rotação de um conjunto de bits (como um byte ou word, por exemplo). Devido às características do sistema binário, existe correspondência directa com as seguintes operações matemáticas:
- multiplicação (por 2) do operando - caso o deslocamento seja feito para a esquerda;
- divisão inteira (por 2) do operando - caso o deslocalmento seja feito para a direita.
Considere-se o número 77 em decimal e o resultado do deslocamento de bits para a esquerda:
Em binário: 0100 1101 << 1 = 1001 1010 Em decimal: 77 x 2 = 154
Considere-se agora o deslocamento de bits para a direita, para o mesmo valor 77(10):
Em binário: 0100 1101 >> 1 = 0010 0110 Em decimal: 77 / 2 = 38
Em arquitecturas x86 o bit excluído é colocado na flag CF (Carry Flag), que corresponde ao resto da operação de divisão, pelo que esse bit estaria a 1 no exemplo acima.
Já em DSPs, como por exemplo os da família Texas Instruments TMS320C2x, há instruções de shift e de rotate. O shift causam um deslocamento simples dos bits, para a esquerda (instrução SFL) ou para a direita (instrução SFR), usando o carry. Já o rotate "roda" os bits através do carry para a esquerda (instrução ROL) ou para a direita (instrução ROR).