Lógica binária: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
Linha 62:
== ''Shift'' ==
O '''deslocamento de bits''' é uma operação elementar de [[lógica binária]] que consiste na rotação de um conjunto de [[bit]]s (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ática]]s:
* [[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<sub>(10)</sub>:
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 [[DSP]]s, 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).
== {{Ver também}} ==
|