Professional Documents
Culture Documents
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
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
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 (>>).
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
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.