Buscar

Aritmética Computacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução aos Sistemas 
Computacionais 
Disciplina: 113468 
 
Prof. Marcus Vinicius Lamar 
 
Aritmética Computacional 
2 
Dispomos de apenas N bits! 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
Todos os tipos de dados são armazenados nos dispositivos de 
memória do computador (Registradores, RAM, HD, etc.) e operados 
no processador (ULA) na forma de bits. 
 
Portanto 
o Não temos precisão infinita 
o Não temos os símbolos ‘+‘ ou ‘-’ para representar o sinal 
o Nem os símbolos ‘,’ ou ‘.’ para representar o ponto fracionário 
 
Veremos aqui apenas os conjuntos numéricos mais comuns: 
• Números Naturais (ℕ) 
• Números Inteiros (ℤ) 
• Números Reais (ℝ) 
Aritmética Computacional 
3 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
•Números Naturais (ℕ) 
 
Os números naturais são representados naturalmente utilizando o sistema de 
numeração binário. 
 
As operações aritméticas de +, -, × e ÷ já foram estudadas. 
 
O computador consegue processar apenas dados representados com um 
número finito de bits. 
 
Ex.: 
Tipo em C tamanho faixa dinâmica 
(unsigned char) 8 bits 0 a 255 
(unsigned short) 16 bits 0 a 65.535 
(unsigned int) 32 bits 0 a 4.294.967.295 
(unsigned long long int) 64 bits 0 a 18.446.744.073.709.551.615 
Aritmética Computacional 
4 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 Adição e Subtração: 
 
 0011 0111 1100 0111 0110 
 + 0010 +1010 +1111 - 0110 - 0101 
 0101 10001 11011 0001 0001 
 
Overflow (resultado muito grande para a word finita do computador): 
 Somar dois números de n bits pode produzir um número de n+1 bits. 
 
 Multiplicação e Divisão: 
 
 0011 0111 10001001 |_110_ 
 x 0010 x 1110 - 110 10110 
 0000 0000 001010 
 0011 0111 - 110 
 0000 0111 1000 
 +0000___ + 0111___ - 110 
 00000110 01100010 0101 
Número de bits do resultado 2n - 0 
 101 
 
 
 
• Realização das operações matemáticas usando o sistema binário. 
Aritmética Computacional Natural 
5 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
•Números Inteiros (ℤ) 
 
Existem várias formas de representação de números inteiros com sinal em binário. 
As convenções mais comuns são: 
 
Sinal e magnitude : 
 Usa-se um símbolo específico para representar o sinal (-) ou 
 O dígito mais significativo indica apenas o sinal (1 negativo, 0 positivo) 
 
Complemento de 1 : 
 A representação do número negativo é o inverso do positivo, isto é, troca-se 0 ⇒ 1 
e 1 ⇒ 0 
 
Complemento de 2 : 
 A representação do número negativo pode ser obtida de maneira simples pelo 
inverso do positivo + 1 
 Interpretação alternativa: O MSB possui ponderação negativa na soma ponderada. 
Aritmética Computacional 
6 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 Sinal e magnitude Complemento de um Complemento de dois 
 
 0000 = +0 0000 = +0 0000 = +0 
0001 = +1 0001 = +1 0001 = +1 
0010 = +2 0010 = +2 0010 = +2 
0011 = +3 0011 = +3 0011 = +3 
 0100 = +4 0100 = +4 0100 = +4 
 0101 = +5 0101 = +5 0101 = +5 
 0110 = +6 0110 = +6 0110 = +6 
 0111 = +7 0111 = +7 0111 = +7 
1000 = -0 1000 = -7 1000 = -8 
1001 = -1 1001 = -6 1001 = -7 
1010 = -2 1010 = -5 1010 = -6 
1011 = -3 1011 = -4 1011 = -5 
 1100 = -4 1100 = -3 1100 = -4 
 1101 = -5 1101 = -2 1101 = -3 
 1110 =-6 1110 = -1 1110 = -2 
 1111 =-7 1111 = -0 1111 = -1 
Exemplos para números com 4 bits: 
Aritmética Computacional 
7 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
Ex.: Em complemento de 2 
Tipo em C tamanho faixa dinâmica 
(char) 8 bits -128 a 127 
(short) 16 bits -32.768 a 32.767 
(int) 32 bits -2.147.483.648 a 2.147.483.647 
(long long int) 64 bits -9.223.372.036.854.775.808 a 
 9.223.372.036.854.775.807 
Aritmética Computacional 
Ex.: 
Em binário sem sinal de 8 bits: 
10011011 = 1x27+0x26+0x25+1x24+1x23+0x22+1x21+1x20 = 
 = 128 + 0 + 0 + 16 + 8 + 0 + 2 + 1 = 155 
 
Em complemento de 2 de 8 bits 
10011011 = - 1x27+0x26+0x25+1x24+1x23+0x22+1x21+1x20 = 
 = -128 + 0 + 0 + 16 + 8 + 0 + 2 + 1 = -101 
8 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
Realização das operações usando o sistema binário complemento de 2 
Exatamente como base decimal (emprestar/vai 1s) descartando o transbordo 
 
 0011 0111 1100 0111 0110 0010 
 + 0010 +1010 +1111 - 0110 - 0101 -0100 
 0101 10001 11011 0001 0001 1110 
 
 
 Obs.: Overflow 
 0101 = +5 1001 = -7 0110 = 6 
 + 0100 = +4 + 1010 = -6 - 1000 = -8 
 1001 ≠ 9 10011 ≠ -13 1110 ≠ 14 
 
O termo overflow em complemento de 2 não significa que houve um transbordo. 
Mas sim que o resultado não “cabe” na faixa dinâmica de n bits!!! 
Aritmética Computacional Inteira 
9 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 Multiplicação e Divisão inteira em complemento de 2 
Os algoritmos clássicos apenas funcionam com números sinal e magnitude. 
Devemos operar com os módulos dos operandos e ajustar o sinal do(s) resultado(s). 
 
 Ajuste do sinal do resultado da multiplicação: 
 Basta verificar se os sinais do multiplicando e do multiplicador são iguais ou 
diferentes, definindo assim o sinal do produto. 
 
 Ajuste dos resultados da divisão: 
 Precisamos definir o sinal do quociente e do resto. 
Dividendo = Quociente x Divisor + Resto 
 7÷2 → 7 = 3 x 2 + 1 
 (-7) ÷ 2 → -7 = (-3) x 2 + (-1) 
 7 ÷ (-2) → 7 = (-3) x (-2) + 1 
 (-7) ÷ (-2) → -7 = 3 x (-2) + (-1) 
 
Regra: Quociente: Mesma regra da multiplicação . 
 Resto: Mesmo sinal do Dividendo. 
Aritmética Computacional Inteira 
10 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
•Números Reais (ℝ) 
 
Já estudamos a forma de representar números reais utilizando o símbolo ‘,’ 
para indicar a parte fracionária. 
Ex.: 0101,102 = 5,510 
No entanto no computador não temos como representar a ‘,’ como um bit 
 
Assim, temos duas formas básicas de representar um número real em bits no 
computador: 
o Ponto Fixo 
o Ponto Flutuante 
Aritmética Computacional Fracionária 
11 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 
Na representação em Ponto Fixo, a posição da virgula binária deve ser 
previamente definida, assim como o número de bits. 
 
Ex.: Dado um número de 8 bits, define-se Q número de casas fracionárias 
 
Q3 : -24 23 22 21 20 , 2-1 2-2 2-3 
 Menor valor: 10000000 = -24 = -16 
 Maior valor: 01111111 = 23+22 +21 +20+2-1 +2-2 +2-3 = 15,875 
 
Q1: -26 25 24 23 22 21 20, 2-1 
 Menor valor: 10000000 = -26 = -64 
 Maior valor: 01111111 = 25+24 +23 +22+21 +20 +2-1 = 63,5 
 
Q7: -20 , 2-1 2-2 2-3 2-4 2-5 2-6 2-7 
 Menor valor: 10000000 = -20 = -1 
 Maior valor: 01111111 = 2-1+2-2 +2-3 +2-4+2-5 +2-6 +2-7 = 0,9921875 
 
 
Aritmética Computacional Fracionária 
Ponto Fixo 
12 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
13 
 Exemplo:Considere 8 bits, calcule a representação em Q7 
 
 0.75 = 
 -0.75 = 
 0.3 = 
Truncamento? Arredondamento? 
 
 Considerando 16 bits, calcule a representação em Q15 
 0.75 = 
 -0.75 = 
 0.3 = 
 
Aritmética Computacional Fracionária 
Ponto Fixo 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
14 
Operações Matemáticas: da mesma forma que inteiros usando mesmo Q. 
 Soma: 
 Subtração 
 Multiplicação: 
 Divisão Fracionária (ex.: 5/8) <= sem resto! Seguir dividindo até o número 
de bits necessário ser atingido. 
Ex.: 8 bits 
 Q0 Q2 Q7 
 01010001 81 20.25 0.6328125 
+ 10111001 -71 -17.75 -0.5546875 
 00001010 10 2.50 0.0781250 
 
 00000110 6 1.5 0.046875 
 x 00001010 x 10 x 2.5 x 0.078125 
 00000000 00111100 60 3.75 0.003662109375 
Aritmética Computacional Fracionária 
Ponto Fixo 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
15 
 
 Vantagens: 
 Aritmética é simples e rápida 
(Processador menor, mais rápido e mais barato) 
 
 Problemas: 
 Pequena faixa dinâmica 
 Precisão depende da faixa dinâmica 
Aritmética Computacional Fracionária 
Ponto Fixo 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
16 
 Precisamos de uma maneira de representar grande faixa dinâmica 
 - números muito pequenos: 0,000000000000001182721226716 
 - números muito grandes: 167283876351200000000000000000 
 
 Notação Científica (base 10): Mantissa ou Significando 
 Característica ou Expoente 
 
 Ex.: 1.182721226716x10-15 e 1.672838763512x1029 
 
 Sempre normalizado, isto é, apenas 1 dígito não decimal (diferente de zero). 
 
 
 Notação Científica (base 2) 
 
 Ex.: 1.010x2-2 = 0.010102 = 0.312510 = (1+0.25)x2-2 
 Sempre normalizado, isto é, apenas 1 dígito não binário (diferente de zero). 
 
Aritmética Computacional Fracionária 
Ponto Flutuante 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 Representação: 
 - sinal(S), mantissa(M), expoente(E): (–1)S × M× 2E 
 - mais bits para a mantissa fornece mais precisão 
 - mais bits para o expoente aumenta a faixa dinâmica 
 
 Padrão de representação em ponto flutuante IEEE 754: 
 
- precisão simples: (1+8+23) 32 bits Tipo em C (float) 
 
 
 
 
- precisão dupla: (1+11+52) 64 bits Tipo em C (double) 
 
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 
s expoente Fração 
1 bit 8 bits 23 bits 
 
 
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 
s expoente Fração 
1 bit 11 bits 20 bits 
Fração (continuação) 
32 bits 
Aritmética Computacional Fracionária 
Ponto Flutuante IEEE 754 
17 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
18 
 O bit “1” inicial do significando está implícito (aumenta a precisão) 
 
 O expoente possui um off-set para facilitar a ordenação 
 - Off-set de 127 para precisão simples 
 e de 1023 para precisão dupla 
 - Formato: 
 (–1)sinal × (1 + fração) × 2(expoente – offset) 
 
 Exemplo: 
 Converter o número decimal N = -5,0 para IEE754 precisão simples 
 Colocar no formato: N = (-1)S x M x 2E onde 1 ≤ M < 2 
 S = 1 
 E = floor(log2(N)) = floor(log2(5,0)) = floor(2,3219) = 2 => expoente=129 
 M = N / 2E = 5,0 / 22 = 5,0/4 = 1,25 => 1,012 
 
 Assim: -5,0 = (-1)1 (1,012) x 2 (129-127) 
 precisão simples IEEE: 1100 0000 1010 0000 0000 0000 0000 00002 
 0xC0A00000 
Aritmética Computacional Fracionária 
Ponto Flutuante IEEE 754 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 Dado o número em Ponto Flutuante IEEE754: 0xC1100000 
 qual o número decimal representado? 
 
 1100 0001 0001 0000 0000 0000 0000 0000 
1 10000010 00100000000000000000000 
 
Expoente = 130 - 127 = 3 
Mantissa: 1,001 
 
Logo: (-1)1 x 1,001 x 23 = - (1001,0) = -9,0 
 
Aritmética Computacional Fracionária 
Ponto Flutuante IEEE 754 
19 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 Como representar 0? 
Precisão Simples Precisão Dupla 
Objeto 
Expoente Fração Expoente Fração 
0 0 0 0 0 
0 ≠0 0 ≠0 ±Número 
desnormalizado 
1-254 ∀ 1-2046 ∀ ±Número 
Ponto Flutuante 
255 0 2047 0 ±∞ 
255 ≠0 2047 ≠0 NaN 
Qual a faixa dinâmica dos números representáveis em precisão simples e dupla? 
 
MAX_single: MIN_single: 
MAX_double: MIN_double: 
Aritmética Computacional Fracionária 
Ponto Flutuante IEEE 754 
20 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 Soma e subtração: 
 Procedimento idêntico às operações em Notação Científica base 10. 
- Converte-se o número com menor expoente para igualar ao expoente do maior 
e soma-se (subtrai-se) as mantissas 
 
Ex.: Decimal 
 5,25x102 + 1,5x10-1 = 5,25x102 + 0,0015x102 = 5,2515x102 
 (4 dígitos) = 5,251x102 
 
Ex.: Binário 
 1,01x22 + 1,1x2-1 = 1,01x22 + 0,0011x22 = 1,0111x22 
 (4 bits) = 1,011x22 
 
Note 5 + 0,75 resulta em 5,5 devido à precisão limitada em 4 bits 
 
Aritmética Computacional Fracionária 
Ponto Flutuante IEEE 754 
21 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 Multiplicação e Divisão: 
 Procedimento idêntico às operações em Notação Científica base 10: 
- Multiplica-se as mantissas e soma-se os expoentes ou 
- Divide-se as mantissas e subtrai-se os expoentes 
 
Ex.: Decimal 
 3,23x102 x 3,415x10-1 = 11,03045 x 101 
 (4 dígitos) = 1,103x102 
 
 Ex.: Binário 
 1,000x2-1 x (-1,110x2-2) =- 1,110000x2-3 
 (4 bits) = -1,110x2-3 
 
Overflow: |resultado| > MAX : |resultado|=infinito 
Underflow: |resultado| < MIN : |resultado|=0,0 
Aritmética Computacional Fracionária 
Ponto Flutuante IEEE 754 
22 
	Introdução aos Sistemas Computacionais�Disciplina: 113468�
	Aritmética Computacional
	Número do slide 3
	Número do slide 4
	Número do slide 5
	Número do slide 6
	Número do slide 7
	Número do slide 8
	Número do slide 9
	Número do slide 10
	Número do slide 11
	Número do slide 12
	Número do slide 13
	Número do slide 14
	Número do slide 15
	Número do slide 16
	Número do slide 17
	Número do slide 18
	Número do slide 19
	Número do slide 20
	Número do slide 21
	Número do slide 22

Continue navegando