You are on page 1of 2

DESLOCAMENTO DE BIT A BIT

No nosso problema temos que formar um byte em nmero binrio. Sabendo que 1 byte tem a 8 bits (a menor unidade de dados) temos, ento, que cada bit s pode receber ou 0 ou 1. Para a nossa questo 7, se quisermos formar, por exemplo, o nmero 3 em binrio teremos que trabalhar com 8 bits (1byte) sendo que o nmero correspondente ser 00000011.
3 O nmero trs em decimal 00000011 O nmero trs em binrio

J para representar 11 em binrio teremos 00001011


11 O nmero onze em decimal 00001011 O nmero onze em binrio

A representao em binrio usa apenas uma sequncia de zeros (0) e/ou uns (1) para representar todos os nmeros, letras e caracteres especiais que usamos. Para converter um nmero binrio para decimal necessrio trabalharmos com uma representao em base 2, a qual ser elevar a algum expoente para termos seus equivalente em decimal, por exemplo:

20 = 1 ;
Base 2 Decimal

21 = 2
Base 2 Decimal

22 = 4
Base 2 Decimal

23 = 6 ...e assim por diante.


Base 2 Decimal

No entanto, percebe-se que dessa forma s conseguimos representar nmeros pares, mas como fazemos para conseguir os nmeros mpares? A resposta a seguinte: Usamos apenas as bases que necessitamos para formar o nmero e as somamos. Nesse processo iremos assumir 1 como sendo a base que iremos usar e 0 como a(s) base(s) que iremos ignorar. Por exemplo, vamos converter 11 (decimal) para binrio:
O nmero onze em decimal O nmero onze em binrio O nmero onze em base 2 Valores das bases Para forma o nmero 11 usaremos apenas os nmeros necessrios, sempre na ordem da esquerda para a direita Soma das bases para formar o nmero onze

0 7 2 128 128

0 6 2 64 64

0 5 2 32

11 0 4 2 16

1 3 2 8

0 2 2 4 4

1 1 2 2 2

1 0 2 1 1

32 16 8 8 + 2 + 1 = 11

Assim, temos que 00001011 o nmero 11 em binrio. Esse conceito importante para entendermos como o computador guarda dados na memria, pois ele ir acess-los da mesma forma: SEMPRE DA ESQUERDA PARA A DIREITA, ou seja, ele sempre ir guarda o primeiro bit recebido na posio 0. Ento, para manipularmos dados bit-a-bit temos que deslocar os bits para a esquerda (<<) ou para direita (>>).

Agora vejamos como funciona o deslocamento de bit-a-bit.


1) Imagine que no seu cdigo voc solicita ao usurio que ele responda se solteiro ou casado, sendo que para solteiro ele dever digitar 0 e para casado ele dever digitar 1. O usurio responde que casado, ento o primeiro bit (b0) do nosso byte receber o valor 1.

0 b7

0 b6

0 b4

0 b4

0 b3

0 b2

0 b1

1 b0

Representao de 1 byte

2) Agora, temos que mudar a posio desse valor 1, que est no b0, para o b7. Para isso, usaremos o operador de deslocamento esquerda (<<), ou seja, temos que desloc-lo sete bit esquerda ( << 7). 3) Ao fazer a devida operao, o byte ficar dessa maneira: 1 b7 0 b6 0 b4 0 b4 0 b3 0 b2 0 b1 0 b0

Representao de 1 byte aps deslocamento de bit-a-bit

4) Pronto, agora necessrio fazer a mesma operao com os outros 4 bits lembrando que para cada deslocamento voc atribuir o valor de bit a serem deslocados. Exemplo: ( << 6) | ( << 5) | ( << 4) | ...assim por diante, at o ltimo dado, sendo que, no nosso exemplo, o ltimo dado ir ocupar os 4 (quatro) primeiros bits (b3, b2, b1 e b0). 5) No final, termos um byte formado pelas respostas fornecidas pelo usurio. 6) Agora, aps conseguir o nmero binrio, imprima-o com um printf, mas lembre de fazer a converso da varivel para hexadecimal. 7) Fim do programa.

OBS.: Para ver o funcionamento dos operadores de deslocamento, execute o programa Deslocamento bit-a-bit.

You might also like