đ ExercĂcios â CapĂtulo 1#
Introdução aos Computadores#
1.1 Sistemas de Numeração#
ExercĂcio 1.1#
Se a espĂ©cie humana tivesse evoluĂdo para ter 8 dedos, como estarĂamos escrevendo os seguintes nĂșmeros?
- 12
- 100
- 1234
Ver solução
A ideia central Ă© que, com 8 dedos, provavelmente terĂamos desenvolvido um sistema de numeração de base 8 (octal), em vez do sistema decimal (base 10).
No sistema octal, os algarismos vĂŁo de 0 a 7. Assim, cada posição representa potĂȘncias de 8:
- 80 = 1
- 81 = 8
- 82 = 64
Agora, convertemos os nĂșmeros decimais para base 8:
a) 12 (decimal)
12 Ă· 8 = 1 resto 4
â 12 = 148
Resposta: 14
b) 100 (decimal)
100 Ă· 8 = 12 resto 4
12 Ă· 8 = 1 resto 4
â 100 = 1448
Resposta: 144
c) 1234 (decimal)
1234 Ă· 8 = 154 resto 2
154 Ă· 8 = 19 resto 2
19 Ă· 8 = 2 resto 3
2 Ă· 8 = 0 resto 2
â 1234 = 23228
Resposta: 2322
PotĂȘncias de 8:
- 80 = 1
- 81 = 8
- 82 = 64
- 83 = 512
- 84 = 4096
ExercĂcio 1.2#
E se tivĂ©ssemos 12 dedos? Use A e B como sĂmbolos extras para escrever os nĂșmeros na nova base.
- 12
- 100
- 1234
Ver solução
Se a espĂ©cie humana tivesse evoluĂdo com 12 dedos, provavelmente usarĂamos um sistema de numeração de base 12 (duodecimal).
Nesse sistema, usamos os algarismos de 0 a 9 e mais dois sĂmbolos extras:
- A = 10
- B = 11
Cada posição representa potĂȘncias de 12:
- 120 = 1
- 121 = 12
- 122 = 144
Agora, convertemos os nĂșmeros decimais para base 12:
a) 12 (decimal)
12 Ă· 12 = 1 resto 0
â 12 = 1012
Resposta: 10
b) 100 (decimal)
100 Ă· 12 = 8 resto 4
â 100 = 8412
Resposta: 84
c) 1234 (decimal)
1234 Ă· 12 = 102 resto 10 (A)
102 Ă· 12 = 8 resto 6
8 Ă· 12 = 0 resto 8
â 1234 = 86A12
Resposta: 86A
PotĂȘncias de 12:
- 120 = 1
- 121 = 12
- 122 = 144
- 123 = 1728
1.2 NĂșmeros BinĂĄrios#
Para facilitar a visualização dos nĂșmeros binĂĄrios vamos agrupĂĄ-los a cada 4 dĂgitos. Assim, desta forma, o nĂșmero binĂĄrio 101010002 serĂĄ escrito como 1010 10002.
ExercĂcio 1.3#
Quantos nĂșmeros diferentes sĂŁo possĂveis com 10 bits? Quais sĂŁo o menor e o maior valor?
Ver solução
Um nĂșmero com 10 bits Ă© uma sequĂȘncia de 10 dĂgitos binĂĄrios, onde cada dĂgito pode ser 0 ou 1.
Quantidade de nĂșmeros possĂveis#
Cada bit tem 2 possibilidades. Portanto, o total de combinaçÔes é: 210 = 1024
Resposta: 1024 nĂșmeros diferentes.
Menor valor#
O menor nĂșmero ocorre quando todos os bits sĂŁo 0: 00 0000 00002 = 0
Resposta: 0
Maior valor#
O maior nĂșmero ocorre quando todos os bits sĂŁo 1: 11 1111 11112
Esse valor corresponde a: 210 â 1 = 1023
Resposta: 1023
ExercĂcio 1.4#
Converta os seguintes nĂșmeros decimais em binĂĄrio usando o menor nĂșmero de bits possĂvel.
- 1001
- 256
- 4095
- 545
Ver solução
Para cada nĂșmero, fazemos a conversĂŁo para binĂĄrio e usamos o menor nĂșmero de bits possĂvel (ou seja, sem zeros Ă esquerda).
Para converter um nĂșmero decimal em binĂĄrio, fazemos divisĂ”es sucessivas por 2, anotando os restos. O nĂșmero binĂĄrio Ă© formado pela leitura dos restos de baixo para cima.
a) 1001 (decimal)
1001 Ă· 2 = 500 resto 1
500 Ă· 2 = 250 resto 0
250 Ă· 2 = 125 resto 0
125 Ă· 2 = 62 resto 1
62 Ă· 2 = 31 resto 0
31 Ă· 2 = 15 resto 1
15 Ă· 2 = 7 resto 1
7 Ă· 2 = 3 resto 1
3 Ă· 2 = 1 resto 1
1 Ă· 2 = 0 resto 1
â 1001 = 11111010012
Resposta: 11 1110 1001
b) 256 (decimal)
256 Ă· 2 = 128 resto 0
128 Ă· 2 = 64 resto 0
64 Ă· 2 = 32 resto 0
32 Ă· 2 = 16 resto 0
16 Ă· 2 = 8 resto 0
8 Ă· 2 = 4 resto 0
4 Ă· 2 = 2 resto 0
2 Ă· 2 = 1 resto 0
1 Ă· 2 = 0 resto 1
â 256 = 1000000002
Resposta: 1 0000 0000
c) 4095 (decimal)
4095 Ă· 2 = 2047 resto 1
2047 Ă· 2 = 1023 resto 1
1023 Ă· 2 = 511 resto 1
511 Ă· 2 = 255 resto 1
255 Ă· 2 = 127 resto 1
127 Ă· 2 = 63 resto 1
63 Ă· 2 = 31 resto 1
31 Ă· 2 = 15 resto 1
15 Ă· 2 = 7 resto 1
7 Ă· 2 = 3 resto 1
3 Ă· 2 = 1 resto 1
1 Ă· 2 = 0 resto 1
â 4095 = 1111111111112
Resposta: 1111 1111 1111
d) 545 (decimal)
545 Ă· 2 = 272 resto 1
272 Ă· 2 = 136 resto 0
136 Ă· 2 = 68 resto 0
68 Ă· 2 = 34 resto 0
34 Ă· 2 = 17 resto 0
17 Ă· 2 = 8 resto 1
8 Ă· 2 = 4 resto 0
4 Ă· 2 = 2 resto 0
2 Ă· 2 = 1 resto 0
1 Ă· 2 = 0 resto 1
â 545 = 10001000012
Resposta: 10 0010 0001
ExercĂcio 1.5#
Converta os seguintes nĂșmeros binĂĄrios em decimal.
- 11 0100 1101
- 1001 0010
- 1 0000
- 1 0001
Ver solução
Para converter um nĂșmero binĂĄrio em decimal, somamos as potĂȘncias de 2 correspondentes Ă s posiçÔes onde hĂĄ dĂgito 1.
a) 11010011012
= 1·29 + 1·28 + 0·27 + 1·26 + 0·25 + 0·24 + 1·23 + 1·22 + 0·21 + 1·20
= 512 + 256 + 64 + 8 + 4 + 1
= 845
Resposta: 845
b) 100100102
= 1·27 + 0·26 + 0·25 + 1·24 + 0·23 + 0·22 + 1·21 + 0·20
= 128 + 16 + 2
= 146
Resposta: 146
c) 100002
= 1·24
= 16
Resposta: 16
d) 100012
= 1·24 + 1·20
= 16 + 1
= 17
Resposta: 17
ExercĂcio 1.6#
Essa questĂŁo Ă© mais filosĂłfica que matemĂĄtica. Nesta seção afirmei que binĂĄrio tem mais a ver com a existĂȘncia ou nĂŁo de uma grandeza fĂsica do que com a comparação de opostos. Assim, ligado e nĂŁo ligado Ă© diferente de pensar em ligado e desligado; aceso e nĂŁo aceso Ă© diferente de aceso e apagado. Na realidade, se quisermos usar desligado, o par binĂĄrio seria nĂŁo desligado; no caso de apagado, seria nĂŁo apagado. Pense a respeito.
Ver solução
A ideia central Ă© que o sistema binĂĄrio nĂŁo representa, originalmente, dois estados opostos no sentido conceitual (como âligadoâ versus âdesligadoâ), mas sim a presença ou ausĂȘncia de uma grandeza fĂsica.
Em circuitos digitais, por exemplo, nĂŁo existe uma âessĂȘncia do desligadoâ. O que hĂĄ Ă©:
- presença de tensĂŁo (nĂvel alto)
- ausĂȘncia de tensĂŁo (nĂvel baixo)
Por isso, faz mais sentido interpretar os estados como:
- âligadoâ e ânĂŁo ligadoâ
- âacesoâ e ânĂŁo acesoâ
e nĂŁo como pares simĂ©tricos como âligado/desligadoâ ou âaceso/apagadoâ. Esses Ășltimos carregam uma interpretação linguĂstica de oposição, mas fisicamente o sistema distingue apenas se uma grandeza estĂĄ presente ou nĂŁo.
Essa perspectiva Ă© importante porque aproxima o conceito de nĂșmero binĂĄrio da sua implementação real: dispositivos eletrĂŽnicos detectam nĂveis (faixas de tensĂŁo), nĂŁo significados semĂąnticos.
Em resumo, o binĂĄrio Ă© menos sobre dualidade filosĂłfica e mais sobre detecção de estados fĂsicos discretos.
1.3 Octal e Hexadecimal#
ExercĂcio 1.7#
Converta os seguintes nĂșmeros binĂĄrios em octais e hexadecimais.
- 1101001101
- 10010010
- 10000
- 110001111
- 1010111011110011
Ver solução
Para converter de binĂĄrio para octal e hexadecimal, agrupamos os bits:
- Octal (base 8): grupos de 3 bits (da direita para a esquerda)
- Hexadecimal (base 16): grupos de 4 bits (da direita para a esquerda)
Completamos com zeros Ă esquerda, se necessĂĄrio.
a) 11010011012
Octal:
001 101 001 101
â 1 5 1 5 â 15158
Hexadecimal:
0011 0100 1101
â 3 4 D â 34D16
b) 100100102
Octal:
010 010 010
â 2 2 2 â 2228
Hexadecimal:
1001 0010
â 9 2 â 9216
c) 100002
Octal:
010 000
â 2 0 â 208
Hexadecimal:
0001 0000
â 1 0 â 1016
d) 1100011112
Octal:
110 001 111
â 6 1 7 â 6178
Hexadecimal:
0001 1000 1111
â 1 8 F â 18F16
e) 10101110111100112
Octal:
001 010 111 011 110 011
â 1 2 7 3 6 3 â 1273638
Hexadecimal:
1010 1110 1111 0011
â A E F 3 â AEF316
ExercĂcio 1.8#
Converta os seguintes nĂșmeros octais em binĂĄrios.
- 71
- 416
- 1110
- 756
- 1237
Ver solução
Para converter de octal para binĂĄrio, substituĂmos cada dĂgito octal por um grupo de 3 bits (pois 8 = 23):
0 â 000
1 â 001
2 â 010
3 â 011
4 â 100
5 â 101
6 â 110
7 â 111
a) 718
7 â 111
1 â 001
â 1110012
b) 4168
4 â 100
1 â 001
6 â 110
â 1000011102
c) 11108
1 â 001
1 â 001
1 â 001
0 â 000
â 0010010010002
(Removendo zeros Ă esquerda: 10010010002)
d) 7568
7 â 111
5 â 101
6 â 110
â 1111011102
e) 12378
1 â 001
2 â 010
3 â 011
7 â 111
â 0010100111112
(Removendo zeros Ă esquerda: 10100111112)
ExercĂcio 1.9#
Converta os seguintes nĂșmeros hexadecimais em binĂĄrios.
- 71
- AB
- F810
- 1A
- AAB0
Ver solução
Para converter de hexadecimal para binĂĄrio, substituĂmos cada dĂgito hexadecimal por um grupo de 4 bits (pois 16 = 24):
0 â 0000
1 â 0001
2 â 0010
3 â 0011
4 â 0100
5 â 0101
6 â 0110
7 â 0111
8 â 1000
9 â 1001
A â 1010
B â 1011
C â 1100
D â 1101
E â 1110
F â 1111
a) 7116
7 â 0111
1 â 0001
â 011100012
(Removendo zero Ă esquerda: 111 00012)
b) AB16
A â 1010
B â 1011
â 1010 10112
c) F81016
F â 1111
8 â 1000
1 â 0001
0 â 0000
â 1111 1000 0001 00002
d) 1A16
1 â 0001
A â 1010
â 000110102
(Removendo zeros Ă esquerda: 1 10102)
e) AAB016
A â 1010
A â 1010
B â 1011
0 â 0000
â 1010 1010 1011 00002
1.4 Kilo e Kibi#
ExercĂcio 1.10#
Seu provedor de Internet vende as velocidades de 15, 30, 50 e 100 Mbits/s. Calcule as velocidades em MiBits/s.
Ver solução
A diferença estå no prefixo:
- Mbit (megabit) = 106 bits
- Mibit (mebibit) = 220 bits = 1.048.576 bits
Para converter de Mbit/s para Mibit/s:
1 Mbit/s = 106 / 220 â 0,9537 Mibit/s
a) 15 Mbit/s
15 Ă 0,9537 â 14,31 Mibit/s
b) 30 Mbit/s
30 Ă 0,9537 â 28,61 Mibit/s
c) 50 Mbit/s
50 Ă 0,9537 â 47,68 Mibit/s
d) 100 Mbit/s
100 Ă 0,9537 â 95,37 Mibit/s
Resumo#
| Mbit/s | Mibit/s |
|---|---|
| 15 | 14,31 |
| 30 | 28,61 |
| 50 | 47,68 |
| 100 | 95,37 |
ExercĂcio 1.11#
VocĂȘ resolve comprar um disco externo para fazer cĂłpia de segurança de seus arquivos. Analisando os arquivos, vocĂȘ percebe que precisa de 1 TiB de armazenamento. Qual deve ser o tamanho mĂnimo do disco que vocĂȘ deve comprar, se o fabricante usa unidades do sistema mĂ©trico decimal para comercializar seus produtos?
Ver solução
O ponto central é a diferença entre os prefixos binårios e decimais:
- 1 TiB (tebibyte) = 240 bytes = 1.099.511.627.776 bytes
- 1 TB (terabyte) = 1012 bytes = 1.000.000.000.000 bytes
Queremos saber quantos TB (decimais) sĂŁo necessĂĄrios para armazenar 1 TiB:
1 TiB = 240 bytes â 1,0995 Ă 1012 bytes
â 1 TiB â 1,0995 TB
ConclusĂŁo#
Para armazenar 1 TiB, vocĂȘ precisa de um disco de pelo menos 1,1 TB.
Na prĂĄtica, como os discos sĂŁo vendidos em tamanhos padronizados, o mĂnimo recomendado Ă©:
Resposta: um disco de 2 TB.
1.5 BinĂĄrio Sinalizado#
ExercĂcio 1.12#
Escreva o binĂĄrio equivalente a â215 em sinal/valor, complemento a 1 e complemento a 2, usando 16 bits para a codificação.
Ver solução
Primeiro, representamos o valor absoluto em binĂĄrio com 16 bits.
215 (decimal):
215 Ă· 2 = 107 resto 1
107 Ă· 2 = 53 resto 1
53 Ă· 2 = 26 resto 1
26 Ă· 2 = 13 resto 0
13 Ă· 2 = 6 resto 1
6 Ă· 2 = 3 resto 0
3 Ă· 2 = 1 resto 1
1 Ă· 2 = 0 resto 1
â 215 = 110101112
Com 16 bits:
0000 0000 1101 0111
a) Sinal e valor#
O bit mais significativo indica o sinal:
- 0 â positivo
- 1 â negativo
Mantemos o valor e colocamos sinal 1:
â 1000 0000 1101 0111
b) Complemento a 1#
Invertemos todos os bits do valor positivo:
0000000011010111
â 1111 1111 0010 1000
c) Complemento a 2#
Somamos 1 ao complemento a 1:
1111 1111 0010 1000
+ 1
-------------------
1111 1111 0010 1001Resumo#
| Representação | Valor binårio |
|---|---|
| Sinal e valor | 1000 0000 1101 0111 |
| Complemento a 1 | 1111 1111 0010 1000 |
| Complemento a 2 | 1111 1111 0010 1001 |
ExercĂcio 1.13#
Escreva o binårio equivalente a +215 em sinal/valor, complemento a 1 e complemento a 2, usando 16 bits para a codificação.
Ver solução
Primeiro, representamos o nĂșmero 215 em binĂĄrio com 16 bits.
215 (decimal):
215 Ă· 2 = 107 resto 1
107 Ă· 2 = 53 resto 1
53 Ă· 2 = 26 resto 1
26 Ă· 2 = 13 resto 0
13 Ă· 2 = 6 resto 1
6 Ă· 2 = 3 resto 0
3 Ă· 2 = 1 resto 1
1 Ă· 2 = 0 resto 1
â 215 = 110101112
Com 16 bits:
0000 0000 1101 0111
a) Sinal e valor#
Para nĂșmeros positivos, o bit de sinal Ă© 0:
â 0000 0000 1101 0111
b) Complemento a 1#
Para nĂșmeros positivos, a representação Ă© igual ao valor binĂĄrio:
â 0000 0000 1101 0111
c) Complemento a 2#
TambĂ©m igual ao valor binĂĄrio para nĂșmeros positivos:
â 0000 0000 1101 0111
Resumo#
| Representação | Valor binårio |
|---|---|
| Sinal e valor | 0000 0000 1101 0111 |
| Complemento a 1 | 0000 0000 1101 0111 |
| Complemento a 2 | 0000 0000 1101 0111 |
Ou seja, nĂșmeros positivos tĂȘm a mesma representação nas trĂȘs codificaçÔes.
ExercĂcio 1.14#
Escreva o binĂĄrio equivalente a -215 em excessoâ511. Qual o menor n possĂvel para escrever este nĂșmero? Quantos bits sĂŁo necessĂĄrios neste caso?
Ver solução
Na representação em excessoâN, somamos uma constante (viĂ©s) ao valor antes de convertĂȘ-lo para binĂĄrio.
Aqui, N = 511.
Passo 1: aplicar o viés#
Valor: â215
â215 + 511 = 296
Passo 2: converter 296 para binĂĄrio#
296 Ă· 2 = 148 resto 0
148 Ă· 2 = 74 resto 0
74 Ă· 2 = 37 resto 0
37 Ă· 2 = 18 resto 1
18 Ă· 2 = 9 resto 0
9 Ă· 2 = 4 resto 1
4 Ă· 2 = 2 resto 0
2 Ă· 2 = 1 resto 0
1 Ă· 2 = 0 resto 1
â 296 = 1001010002
Resultado em excessoâ511#
1 0010 1000
Representação de â215 no menor nĂșmero de bits#
Qual o menor n?#
Para representar â215 em complemento a 2, precisamos que o intervalo cubra esse valor.
Com n bits, o menor valor representĂĄvel Ă© -(2n-1-1) e o maior valor Ă© +2n-1.
Precisamos que:
-(2n-1-1) †-215
Verificando:
27 - 1 = 127 < 215 â insuficiente
28 - 1 = 255 â„ 215 â suficiente
N = 28 - 1 = 255.
Portanto N = 255.
Resumo#
- Representação (excessoâ511): 01 0010 10002
- Menor N possĂvel: 255 (excesso-255)
- NĂșmero mĂnimo de bits: 9
ExercĂcio 1.15#
Escreva os binĂĄrios equivalentes a 120 e a 8, usando 8 bits, e execute a soma desses nĂșmeros binĂĄrios. Dependendo da representação usada para nĂșmeros inteiros, essa soma vai causar o chamado transbordamento (overflow). Como interpretar esse resultado de acordo com as representaçÔes de nĂșmeros binĂĄrios negativos?
Ver solução
Primeiro, representamos os nĂșmeros com 8 bits.
ConversĂŁo para binĂĄrio#
120 (decimal):
120 = 0111 10002
8 (decimal):
8 = 0000 10002
Soma binĂĄria#
0111 1000 +0000 1000 ---------- =1000 0000
Resultado: 1000 00002
Interpretação do resultado#
O valor obtido depende da forma de interpretação dos nĂșmeros binĂĄrios:
1) Sem sinal (unsigned)#
100000002 = 128
NĂŁo hĂĄ erro â o resultado estĂĄ correto.
2) Sinal e valor#
O bit mais significativo indica o sinal:
- 1 â nĂșmero negativo
- valor = 0000000
Resultado: â0 (uma representação ambĂgua)
âĄïž Aqui ocorre overflow, pois a soma de dois nĂșmeros positivos resultou em um valor negativo.
3) Complemento a 1#
Invertendo os bits para obter o valor:
10000000 â 01111111 = 127
Resultado: â127
âĄïž TambĂ©m hĂĄ overflow, pois o resultado correto (128) estĂĄ fora do intervalo representĂĄvel (â127 a +127).
4) Complemento a 2#
Interpretando diretamente:
100000002 = â128
âĄïž HĂĄ overflow, pois somamos dois nĂșmeros positivos e obtivemos um negativo.
O intervalo com 8 bits Ă© de â128 a +127, e 128 nĂŁo pode ser representado.
ConclusĂŁo#
- A soma binĂĄria produz 100000002
- O resultado correto (128) nĂŁo cabe em 8 bits com sinal
- O comportamento varia conforme a representação:
- unsigned: correto (128)
- sinal/valor: â0 (inconsistĂȘncia)
- complemento a 1: â127
- complemento a 2: â128
âĄïž Overflow ocorre quando o resultado matemĂĄtico nĂŁo pode ser representado com o nĂșmero de bits disponĂvel.
1.6 NĂșmeros Reais#
ExercĂcio 1.16#
Escreva os binĂĄrios equivalentes a â215,5 na notação com vĂrgula fixa. Qual o nĂșmero mĂnimo de bits necessĂĄrios?
Ver solução
Queremos representar â215,5 em notação de vĂrgula fixa. Primeiro, convertemos o valor absoluto.
Parte inteira (215)#
215 Ă· 2 = 107 resto 1
107 Ă· 2 = 53 resto 1
53 Ă· 2 = 26 resto 1
26 Ă· 2 = 13 resto 0
13 Ă· 2 = 6 resto 1
6 Ă· 2 = 3 resto 0
3 Ă· 2 = 1 resto 1
1 Ă· 2 = 0 resto 1
â 215 = 110101112
Parte fracionĂĄria (0,5)#
0,5 Ă 2 = 1,0 â parte inteira 1
â 0,5 = 0,12
Representação em binårio#
215,5 = 11010111,12
InclusĂŁo do sinal#
Usando sinal e valor:
â â215,5 = 1 11010111,12
NĂșmero mĂnimo de bits#
- Parte inteira: 8 bits
- Parte fracionĂĄria: 1 bit
- Sinal: 1 bit
Total: 10 bits
Resultado final#
1 11010111,12
Observação#
A notação de vĂrgula fixa exige definir previamente quantos bits sĂŁo usados para a parte inteira e para a parte fracionĂĄria. Aqui usamos o mĂnimo necessĂĄrio, mas em sistemas reais essa divisĂŁo Ă© fixa (por exemplo, 16.16, 8.8 etc.).
ExercĂcio 1.17#
Escreva os binĂĄrios equivalentes a â215,5 usando o padrĂŁo IEEE 754 para precisĂŁo simples e dupla.
Ver solução
Queremos representar â215,5 no padrĂŁo IEEE 754.
Passo 1: converter para binĂĄrio#
Parte inteira:
215 = 110101112
Parte fracionĂĄria:
0,5 = 0,12
â 215,5 = 11010111,12
Passo 2: normalização#
11010111,12 = 1,101011112 Ă 27
Passo 3: sinal#
NĂșmero negativo â bit de sinal = 1
PrecisĂŁo simples (32 bits)#
- Sinal: 1 bit
- Expoente: 8 bits (viés = 127)
- Mantissa: 23 bits
Expoente#
7 + 127 = 134
134 = 100001102
Mantissa#
Removendo o 1 implĂcito:
10101111 e completando com zeros:
10101111000000000000000
Resultado (32 bits)#
1 10000110 10101111000000000000000
PrecisĂŁo dupla (64 bits)#
- Sinal: 1 bit
- Expoente: 11 bits (viés = 1023)
- Mantissa: 52 bits
Expoente#
7 + 1023 = 1030
1030 = 100000001102
Mantissa#
10101111 seguido de zeros até 52 bits:
1010111100000000000000000000000000000000000000000000
Resultado (64 bits)#
1 10000000110 1010111100000000000000000000000000000000000000000000
Observação#
Como 0,5 tem representação binĂĄria exata, o nĂșmero â215,5 Ă© representado sem erro de arredondamento em IEEE 754.
ExercĂcio 1.18#
Escreva os binĂĄrios equivalentes a 0,1 usando o padrĂŁo IEEE 754 para precisĂŁo simples e dupla.
Ver solução
Queremos representar 0,1 (decimal) no padrĂŁo IEEE 754.
Passo 1: converter para binĂĄrio#
MultiplicaçÔes sucessivas por 2:
0,1 Ă 2 = 0,2 â 0
0,2 Ă 2 = 0,4 â 0
0,4 Ă 2 = 0,8 â 0
0,8 Ă 2 = 1,6 â 1
0,6 Ă 2 = 1,2 â 1
0,2 Ă 2 = 0,4 â 0
…
â padrĂŁo periĂłdico:
0,1 = 0,00011001100110011…2
Passo 2: normalização#
0,0001100110011… = 1,1001100110011… Ă 2â4
Passo 3: sinal#
NĂșmero positivo â bit de sinal = 0
PrecisĂŁo simples (32 bits)#
- Sinal: 1 bit
- Expoente: 8 bits (viés = 127)
- Mantissa: 23 bits
Expoente#
â4 + 127 = 123
123 = 011110112
Mantissa (com arredondamento)#
10011001100110011001101
Resultado (32 bits)#
0 01111011 10011001100110011001101
PrecisĂŁo dupla (64 bits)#
- Sinal: 1 bit
- Expoente: 11 bits (viés = 1023)
- Mantissa: 52 bits
Expoente#
â4 + 1023 = 1019
1019 = 011111110112
Mantissa (com arredondamento)#
1001100110011001100110011001100110011001100110011001
Resultado (64 bits)#
0 01111111011 1001100110011001100110011001100110011001100110011001
Observação#
O nĂșmero 0,1 nĂŁo tem representação finita em binĂĄrio, resultando em uma dĂzima periĂłdica.
Por isso, IEEE 754 armazena uma aproximação, o que pode causar pequenos erros de precisão em cålculos.
Quer ir além?#
Se vocĂȘ quiser se desafiar com novos problemas, sem solução disponĂvel: