Escolar Documentos
Profissional Documentos
Cultura Documentos
4710 = 1011112
2.2 Converso de binrio para decimal
A converso de binrio para decimal feita pela soma dos produtos dos dgitos binrios com as
potncias de 2, cujos expoentes crescem da direita para esquerda, comeando com expoente zero:
1 0 1 1 1 1
25 24 23 22 21 20
1 25 + 0 24 + 1 23 + 1 22 + 1 21 + 1 20 =
= 32 + 0 + 8 + 4 + 2 + 1 = 47
Exerccios:
- Converter 15010 de decimal para binrio.
- Converter 110110112 de binrio para decimal.
2.3 Converso de nmeros fracionrios decimais para binrio
Para converter nmeros fracionrios decimais para binrio, deve se proceder em duas etapas. A
parte inteira utiliza a converso de base convencional vista anteriormente. A parte fracionria da
converso composta pelo produto consecutivo da parte fracionria por 2, onde cada novo fator
a ser multiplicado a parte fracionria do produto anterior, at que o produto resulte em 1. O
binrio fracionrio assim obtido a parte inteira de cada produto. Por exemplo, converter o
decimal fracionrio 8,375 para binrio:
A parte inteira 8 convertida da forma convencional: 810 = 10002, verifique.
8
=0=
2
4
=0=
2
2
2
=0= 1
0,750
x2
1,500
0,500
x2
1,000
O equivalente binrio composto pela parte inteira desses resultados, da esquerda para direita.
Assim, 0,37510 = 0,0112
Finalmente: 8,37510 = 1000,0112
Deve-se observar que nem todo decimal fracionrio pode ser convertido apropriadamente em
binrio. Por exemplo, ao tentar converter 0,8 de decimal para binrio:
0,8
x2
1,6
0,6
x2
1,2
0,2
x2
0,4
0,4
x2
0,8
0,8
x2
1,6
(...)
J a parte fracionria binria 0,0112 convertida para decimal, como sendo a soma de produtos
das potncias de 2, cujos expoentes so negativos, comeando em 1, da esquerda para direita.
0,
0 1 1
2-1 2-2 2-3
0 21 + 1 22 + 1 23 =
1
1
1
=0 +1 +1
2
4
8
= 0 + 0,25 + 0,125 = 0,375
Portanto, o resultado final da converso a parte inteira mais a fracionria: 1000,0112 = 8,37510
Exerccios:
- Converter 45,3437510 de decimal para binrio.
- Converter 110011,11012 de binrio para decimal.
8
11 8
=3= 1
9210 = 1348
2.6 Converso de octal para decimal
A converso de octal para decimal feita pela soma dos produtos dos dgitos octais com as
potncias de 8, com expoente crescente da direita para esquerda, comeando com expoente zero:
1 3 4
82 81 80
1 82 + 3 81 + 4 80 =
= 1 64 + 3 8 + 4 1 =
= 64 + 24 + 4 = 92
3
Exerccios:
- Converter 71910 de decimal para octal.
- Converter 4768 de octal para decimal.
2.7 Converso de decimal para hexadecimal
A base hexadecimal utiliza 16 caracteres diferentes, de 0 at 9 e as letras de A at F:
caracteres hexadecimais = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
As letras de A at F representam os valores decimais de 10 at 15, respectivamente.
Semelhante converso para binrio ou octal, a converso de decimal para hexadecimal feita pela
diviso sucessiva por 16, onde cada nova diviso feita com o quociente anterior, at que o
quociente resulte em um valor menor que 16. O nmero convertido composto pelo ltimo
quociente com os restos das divises, de trs para frente. Por exemplo, converter o decimal 123 para
hexadecimal:
123
16
=11= 7
O resto 11 representado pela letra B em hexadecimal. Assim, a converso fica 12310 = 7B16
Exerccios:
- Converter 19710 de decimal para hexadecimal.
- Converter 8E16 de hexadecimal para decimal.
Exerccios:
- Converter de binrio 1101101100001112 para hexadecimal.
- Converter de hexadecimal F2B916 para binrio.
0
+1
1
1
+0
1
1
+1
10
011
+010
101
Note a operao na 2a coluna onde 1 + 1 = 0 e vai 1 para a prxima coluna. Assim, 112 + 102 = 1012
Outro exemplo, vamos efetuar 1102 + 1112 :
11
0110
+0111
1101
Se tiver dvidas, comprove convertendo para decimal: 1102 + 1112 = 11012 equivale a 6 + 7 = 13.
Exerccios:
- Efetuar 110012 + 10112
- Efetuar 1011012 + 111000112
- Efetuar 111112 + 1111112
- Efetuar 1001112 + 11102 + 10112
0
1
1
1
0
1
1
1
0
Observe que para o caso de 0 1, o resultado ser igual a 1, porm haver um transporte da coluna
seguinte que deve ser acumulado no subtraendo e, obviamente, subtrado do subtraendo.
Para exemplificar, vamos efetuar a operao 1112 1002 :
111
100
011
Resultado: 1112 1002 = 112 que em decimal fica 7 4 = 3.
Agora, para melhor elucidar o caso 0 1, vamos resolver a operao 10002 1112. Assim:
1000
0111
0001
Exerccios:
- Efetuar 10102 10002
- Efetuar 100102 100012
- Efetuar 110002 1112
0 1=0
1 0=0
1 1=1
8
Exerccios:
- Efetuar 11002 112
- Efetuar 110102 1012
- Efetuar 1001012 10012
Uma pequena nota sobre algarismos mais significativos e menos significativos. Em bases
numricas, estamos acostumados com que o algarismo mais significativo seja o primeiro da
esquerda para a direita, por exemplo, um milho escrito como 1000000.
Em computao, ao escrevermos sequncias de bytes como, por exemplo, A9 B3 7E 62, este padro
perfeitamente utilizado e conhecido como big-endian, onde o byte mais significativo (MSB Most
Significant Byte) representado primeiro, neste caso A9 o MSB; e por outro lado, o byte menos
significativo (LSB Least Significant Byte) representado por ltimo, neste caso 62 o LSB.
O outro padro de representao de bytes em memria conhecido como little-endian, e funciona
de modo contrrio, isto , os bytes da sequncia so armazenados em memria de trs para frente
como 62 7E B3 A9. Em outras palavras, o LSB continua sendo 62, porm armazenada primeiro;
da mesma forma o MSB continua sendo o A9, porm armazenado por ltimo.
9
No caso de uso de bit de sinal, se o binrio for positivo ento o bit ser 0, caso contrrio, se o
binrio for negativo ento o bit ser 1. Este processo de representao tambm denominado de
sinal-mdulo. Para exemplificar o exposto, vamos representar os nmeros decimais +3510 e 7310
em binrio utilizando a notao de sinal-mdulo.
3510 = 1000112 com o acrscimo do bit de sinal, tem-se que: +1000112 = 01000112
lembre que o bit de sinal 0 indica que o nmero positivo.
7310 = 10010012 com o acrscimo do bit de sinal, tem-se que: 10010012 = 110010012
lembre que o bit de sinal 1 indica que o nmero negativo.
4.2 Complemento de 2
Uma outra forma para representar nmeros binrios negativos bastante utilizada a notao do
complemento de 2, que nada mais do que os bits invertidos acrescidos de uma unidade. Por
exemplo, vamos representar 15510 na notao de complemento de 2.
Primeiro, convertemos 15510 para binrio.
15510 = 100110112
Depois, invertermos todos os bits binrios trocando 0 por 1 e vice-versa, trocando 1 por 0.
Esse novo valor invertido assim obtido tambm chamado de complemento de 1.
Complemento de 1 = 011001002
Finalmente, o complemento de 2 obtido como a soma de uma unidade ao complemento de 1.
Complemento de 2 = (Complemento de 1) + 1 = 011001002 + 12 = 011001012
Este ltimo valor a representao de 15510 em binrio pela notao de complemento de 2.
Note que o 0 mais esquerda deve ser mantido, caso contrrio, ao se tentar decifrar esse valor
binrio de complemento de 2 para decimal, o valor ser alterado.
Observao: linguagens de programao como C, C++, Java, utilizam o complemento de 2 para
representar suas variveis inteiras negativas em seus diferentes tipos (int, byte, short, long). Desta
forma, a representao do nmero binrio negativo diferente e depende do tipo da varivel,
especialmente do tamanho do tipo da varivel em bits.
Exerccios:
- Represente 2710 em binrio utilizando a notao sinal-mdulo.
- Represente +4710 em binrio utilizando a notao sinal-mdulo.
- Represente 15010 em binrio utilizando a notao de complemento de 2.
10
- Pergunta desafio: qual o menor valor inteiro negativo e o maior valor inteiro positivo que podem
ser representados por uma varivel do tipo byte (8 bits); em outras palavras, qual a faixa de
variao de variveis do tipo byte? E se a varivel fosse do tipo short (16 bits), quais seriam o
menor e o maior valor representveis? E para variveis do tipo int de 32 bits?
Exerccios propostos
1. Converta para o sistema decimal:
(a) 1001102
(c) 1110112
(b) 0111102
(d) 10100002
(e) 110001012
(f) 110101102
(g) 0110011001101012
(e) 80810
(f) 542910
(g) 1638310
3. Quantos bits necessitaramos para representar cada um dos nmeros decimais abaixo?
(a) 51210
(c) 210
(e) 3310
(g) 710
(b) 1210
(d) 1710
(f) 4310
4. Transforme para decimal os seguintes nmeros binrios:
(a) 11,112
(c) 1010,10102
(e) 10011,100112
(b) 1000,00012
(d) 1100,11012
(f) 11000,0011012
(g) 100001,0110012
(g) 53,387610
(d) 15448
(e) 20638
(d) 409710
(e) 566610
(d) 67408
(e) 100218
(c) 204810
(e) 11010001012
(e) 2D3F16
(e) 3547910
(e) F1CD16
(c) 3B8C16
(d) 47FD16
11
19. Multiplique:
(a) 101012 112
(b) 110012 1012
12
decimal binrio
10
1010
11
1011
12
1100
13
1101
14
1110
15
1111
16
10000
17
10001
18
10010
19
10011
decimal binrio
20
10100
21
10101
22
10110
23
10111
24
11000
25
11001
26
11010
27
11011
28
11100
29
11101
decimal
30
31
32
33
34
35
36
37
38
39
binrio
11110
11111
100000
100001
100010
100011
100100
100101
100110
100111
Observaes:
todo decimal mpar possui equivalente binrio terminado em 1.
todo decimal par possui equivalente binrio terminado em 0.
todo decimal que uma potncia de 2 (2, 4, 8, 16, 32, 64, 128, 256, etc.) possui como
equivalente binrio o dgito 1 seguido de vrios zeros. (102, 1002, 10002, 100002, etc.)
todo decimal que igual a uma potncia de 2 menos uma unidade (1, 3, 7, 15, 31, 63, 127,
255, 2n 1, etc.) possui como equivalente binrio vrios 1s (12, 112, 1112, 11112, etc.)
octal
0
1
2
3
4
5
6
7
10
11
decimal
10
11
12
13
14
15
16
17
18
19
octal
12
13
14
15
16
17
20
21
22
23
decimal
20
21
22
23
24
25
26
27
28
29
octal
24
25
26
27
30
31
32
33
34
35
decimal
30
31
32
33
34
35
36
37
38
39
octal
36
37
40
41
42
43
44
45
46
47
Observaes:
todo decimal mltiplo de 8 (8, 16, 24, 32, 40, 48, etc.) possui como equivalente octal uma
representao terminada em zero (108, 208, 308, 408, 508, 608, etc.) Basta lembrar que no
algoritmo de converso de decimal para octal (divises sucessivas), se o decimal for
mltiplo de 8, ento ele divisvel por 8 e o resto da primeira diviso zero; logo, o
equivalente octal terminar em zero.
todo decimal par possui octal equivalente par, e todo decimal mpar possui octal mpar.
13
hexa
0
1
2
3
4
5
6
7
8
9
decimal
10
11
12
13
14
15
16
17
18
19
hexa
A
B
C
D
E
F
10
11
12
13
decimal
20
21
22
23
24
25
26
27
28
29
hexa
14
15
16
17
18
19
1A
1B
1C
1D
decimal
30
31
32
33
34
35
36
37
38
39
hexa
1E
1F
20
21
22
23
24
25
26
27
Observaes:
todo decimal mltiplo de 16 (16, 32, 48, 64, 80, etc.) possui equivalente hexadecimal
terminado em zero (1016, 2016, 3016, 4016, 5016, etc.)
em linguagens de programao, comum representar valores hexadecimais de vrias formas
diferentes:
o com prefixo minsculo zero e x, por exemplo, 0xFF
o com prefixo maisculo zero e X, por exemplo, 0XFF
o com prefixo de smbolo monetrio de cifro (assembly), por exemplo, $FF
o com sufixo minsculo letra h (assembly), por exemplo, FFh
14