Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à (Engenharia de) Computação IC(IEC) REPRESENTAÇÃO DE DADOS: SISTEMAS DE NUMERAÇÃO E ARITMÉTICA BINÁRIA Referências: (OECTB4ed/5ed): Organização Estruturada de Computadores, A.S. Tanenbaum (4ª e 5ª. Ed): cap 3, apêndices A e B Introdução à Organização de Computadores, M. Monteiro: cap 3, 4 e apêndice A. Arquitetura e Organização Computadores, W. Stallings (5ª. Ed.): cap 8, apêndices A e 8A. Parte I: Sistemas de numeração e aritmética binária inteira Referências: Mário Monteiro (IOC) : cap 3, 4 e apêndice A. William Stallings (AOC) : cap 8, apêndices A e 8A. A.S. Tanenbaum (OEC) : cap 3, apêndices A e B Memória É o componente de um computador que armazena dados e instruções du- rante o processamento. Ela é composta de células (posições) que são locali- zadas através de um número (endereço) único. cé lu la = 8 b its en de re ço s 0 2 -11 6 2 1 instru çã o ou da d o Sistemas de numeração • Um SISTEMA NUMÉRICO é o conjunto de símbolos, palavras e regras que permitem escrever e representar todos os números. • NUMERAL é um símbolo designado para representar um número. • NÚMERO é um conceito abstrato que representa uma certa quantidade, ou seja, é a idéia que um grupo de símbolos representa. Bases numéricas: • É a quantidade de símbolos (numerais) usados para representar os números em um sistema numérico. • Exemplos: Base 2 (binária) : 2 símbolos (0 e 1) Base 8 (octal) : 8 símbolos (0 a 7) Base 10 (decimal) : 10 símbolos (0 a 9) Base 16 (hexadecimal) : 16 símbolos (0 a 9, A a F) Notação Posicional Os algarismos componentes de um número assumem valores diferentes, dependendo de sua posição relativa no número (N) : Nb = (dn-1 dn-2 dn-3 ....d1 d0)b n indica o número de dígitos d indica cada algarismo do número n-1, n-2, 1, 0 são índices que indicam a posição de cada algarismo b indica a base do sistema de numeração Posições As posições são numeradas da direita para a esquerda iniciando-se em zero. Exemplo: 3 2 1 0 posições N10 = 1 9 6 810 ( número na base 10) Valor da posição • Corresponde ao valor associado ao símbolo (alga-rismo ou dígito) da posição considerada. O valor do i-ésimo digito, d, é calculado por: d X basei , ou seja, este valor é calculado multiplicando-se o valor do símbolo pelo valor da base elevada à posição. • Exemplo: Para N = 1 9 6 810, o algarismo 9 está na posição 2, deste modo, o valor desta posição é : 9 X 102 = 9 X 100 = 900 Valor numérico Corresponde ao somatório (soma) dos valores de todas as posições que compõem um determinado número: N = dn-1x bn-1+ dn-2xbn-2 + ... + d0xb0 Exemplo: N = 1 9 6 810 196810 = 1X103 + 9X102 + 6X101 + 8X100 = 1X1000 + 9X100 + 6X10 + 8x1 = 1000 + 900 + 60 + 8 Conversão para a base decimal A conversão de qualquer base para a base decimal é feita calculando-se o valor numérico na base decimal. Exemplos: a) Binário Decimal 3 2 1 0 (posições) 1 0 1 02 = 1 X 23 + 0 X 22 + 1 X 21 + 0 X 20 = 1 X 8 + 0 X 4 + 1 X 2 + 0 X 1 = 8 + 0 + 2 + 0 = 1010 PUC Minas – Sistemas de Informação – Introdução à Computação – Prof. João Caram ●binário → decimal) ● Fazendo a volta (binário → decimal): ● 1110 (2) 0x20 = 0x1 = 0 1x21 = 1x2 = 2 1x22 = 1x4 = 4 1x23 = 1x8 = 8 ● Total = 0+2+4+8 = 14 Conversão octal decimal b) Octal Decimal 2 1 0 (posições) 3 0 28 = 3 X 82 + 0 X 81 + 2 X 80 = 3 X 64 + 0 X 8 + 2 X 1 = 192 + 0 + 2 = 19410 Conversão hexadecimal decimal c) Hexadecimal Decimal 1 0 (posições) 3 516 = 3 X 161 + 5 X 160 = 3 X 16 + 5 X 1 = 48 + 5 = 5310 PUC Minas – Sistemas de Informação – Introdução à Computação – Prof. João Caram Conversão de decimal para binário ● Para a conversão da base decimal para base binária ● Primeiro, observe como é formado o valor na base decimal: 2612 2x1 1x10 6x100 2x1000 ● Ou, de outra maneira: Base decimal Outra base A conversão da base decimal para qualquer outra base utiliza o método das divisões sucessivas. Para converter um número da base decimal para uma base b basta dividí-lo sucessivamente por b até chegar ao quociente zero. O número representado na base b será formado pelos restos das divisões sucessivas, lidos de cima para baixo. Decimal Binário (exemplo) 19 | 2 1 9 | 2 1 4 | 2 0 2 | 2 0 1 | 2 1 0 Os restos são 1, 0, 0, 1 e 1, portanto: 1910 = 100112 PUC Minas – Sistemas de Informação – Introdução à Computação – Prof. João Caram Decimal Binário ● Conversão para base binária ● Segue-se o mesmo princípio: dividir sucessivamente o número por 2 e utilizar o resto da divisão ● Ex: ● Ou seja, 14 (10) = 1110 (2) Decimal Octal (exemplo) 157 | 8 5 19 | 8 3 2 | 8 2 0 Os restos são 2, 3 e 5, portanto: 15710 = 2358 Decimal Hexadecimal (exemplo) 157 | 16 13 9 | 16 9 0 Os restos são 13 (D em hexadecimal ) e 9, portanto: 15710 = 9D16 Conversão entre Bases Potência de 2 Entre bases 2 e 8: agrupamento de 3 em 3 bits Obs: 8 = 23 Entre bases 2 e 16: agrupamento de 4 em 4 bits Obs: 16 = 24 Entre bases 8 e 16: é usada a base 2 como intermediária Obs: o a agrupamento de bits é sempre da direita para a esquerda. Potências de 2 20 = 1 29 = 512 218 = 262144 (256Ki) 21 = 2 210 = 1024 (1Ki) 219 = 524288 (512Ki) 22 = 4 211 = 2048 (2ki) 220 = 1024K = 1Mi 23 = 8 212 = 4096 (4Ki) 230 = 1024M = 1Gi 24 = 16 213 = 8192 (8Ki) 240 = 1024G = 1Ti 25 = 32 214 = 16384 (16ki) 250 = 1024T = 1Pi 26 = 64 215 = 32768 (32Ki) 260 = 1024P = 1Ei 27 = 128 216 = 65536 (64Ki) 270 = 1024E = 1Zi 28 = 256 217 = 131072 (128Ki) 280 = 1024Z = 1Yi Potências de 2 20 = 1 29 = 512 218 = 262144 (256K) 21 = 2 210 = 1024 (1K) 219 = 524288 (512K) 22 = 4 211 = 2048 (2k) 220 = 1024K = 1M 23 = 8 212 = 4096 (4K) 230 = 1024M = 1G 24 = 16 213 = 8192 (8K) 240 = 1024G = 1T 25 = 32 214 = 16384 (16k) 250 = 1024T = 1P 26 = 64 215 = 32768 (32K) 260 = 1024P = 1E 27 = 128 216 = 65536 (64K) 270 = 1024E = 1Z 28 = 256 217 = 131072 (128K) 280 = 1024Z = 1Y Quantificação de Memória Unidade Sigla Quantidade (bytes) 1 Kilobyte 1 KB = 1.024 1.024 1 Megabyte 1 MB = 1.0242 1.048.576 1 Gigabyte 1 GB = 1.0243 1.073.741.824 1 Terabyte 1 TB = 1.0244 1.099.511.627.776 Conversão Base 2 8 (exemplo) 10000012 = X8 1 000 001 base 2 1 0 1 base 8 X8 = 1018 Conversão Base 2 16 (exemplo) 10000012 = Y16 100 0001 base 2 4 1 base 16 Y16 = 4116 Aritmética binária (adição) É semelhante à adiçao (soma) em decimal, levando-se em conta que há apenas dois algarismos disponíveis: 0 e 1. 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0, com “vai 1”. Adição binária (exemplo) 1 1111 (vai “um”) 101101 + 101011 ---------- 1011000 Conversão entre comprimentos de palavra diferentes • Números positivos são completados com zeros à esquerda (extensão de sinal) : • +18 = 00010010 • +18 = 00000000 00010010 • Números negativos são completados com unsos à esquerda (extensão de sinal) : • -18 = 10010010 • -18 = 11111111 10010010 Aritmética binária (subtração) É semelhante a subtraçãoem decimal. No caso de “empréstimo” deve-se utilizar o valor da base (2). Exemplo: 2 002 101101 - 100111 ---------- 000110 Aritmética binária (mult/div) • A multiplicação de números binários é seme- lhante à multiplicação em decimal (somas sucessivas). • A divisão de números binários é semelhante à divisão decimal. Considerando que: 0/1 = 0 e 1/1 = 1 e que a divisão por zero acarreta erro Multiplicação binária (exemplo) 1011 X 101 ------ 1011 0000 1011 ------------- 110111 Divisão binária (exemplo) 100’1’0 |11 - 11 110 ----- 0011 11 --- 000 Álgebra Booleana A Álgebra de Chaveamento (“Switching Álgebra”) é um ramo da Álgebra Booleana (George Boole 1815-1864) que é utilizada para descrever, projetar e analisar os sistemas digitais (lógicos) de um computador. As variáveis na Álgebra Booleana, Xi, assumem apenas dois valores: 0 e 1. Xi ∈ {0,1} Operações lógicas básicas OU (OR) X = A + B (A|B bit a bit C/C++) AND (E) X= A . B = AB (A&B bit a bit C/C++) NÃO (NOT) X = A‘ = ~A (~A bit a bit C/C++) Portas Lógicas • Uma porta lógica é um elemento de hardware que recebe um ou mais sinais de entrada e produz um sinal de saída. • Tabela Verdade: forma tabular de representar os possíveis valores de saída gerados a partir das possíveis combinações de valores de entrada. Portas Lógicas Básicas • AND • OR • NOT (inversor) • NAND (AND seguido de NOT) • NOR (OR seguido de NOT) • XOR (eXclusive OR) Circuitos Digitais • Em um computador digital, as informações são representadas pelo bits 0 (p. ex. : 0V a 1V) e 1 (p. ex.: 2V a 4V). • Circuitos digitais: circuitos eletrônicos que armazenam os sinais binários e realizam certos tipos de operações com eles. • Os circuitos digitais são compostos de pequenos elementos (portas lógicas) capazes de manipular apenas grandezas binárias. Materiais e Componentes Eletrônicos • Condutores: • ferro(Fe), cobre(Cu), prata(Ag), ouro(Au), etc. • Isolantes: • vidros, borrachas, plásticos, etc. • Semicondutores: • silício (Si), germânio(Ge), etc. Transistores • Substituiu as válvulas • Menor • Mais barato • Menos dissipação de calor • Dispositivo de estado sólido • Feito de Silício (Terra e areia) • Inventado 1947 pelo Sino Labs • William Shockley et al. Transistor – 1 Transistor - 2 Transistor - 3 Transistor - 4 célula de memória: Flash NAND Portas Lógicas (OECTB5ed) (a) Inversor com transistor (b) Porta NAND (c) Porta NOR. Portas (operadores) lógicas e as respectivas tabela(s) verdade (OECTB5ed) Circuitos integrados Classificação de pastilhas (chips) quanto à integração • Integração: quantidade de portas lógicas • SSI (Small Scale Integration) - 1 a 10 portas • MSI (Medium Scale Integration) - até 100 portas • LSI (Large Scale Integration) - até 100.000 portas • VLSI (Very LSI) - acima de 100.000 portas Números binários negativos • Representação Sinal-Magnitude • Representação em Complemento-1 • Representação em Complemento-2 Representação Sinal-Magnitude • O bit MSB (mais significativo = bit da esquerda) é o bit de sinal • MSB = 0 (número positivo) • MSB = 1 (número negativo) • Exemplos: +18 = 00010010 e -18 = 10010010 • Problemas: - É necessário considerar o sinal e a magnitude nas operações aritméticas. - Existem duas representações para o zero: (+0 e -0) PUC Minas – Sistemas de Informação – Introdução à Computação – Prof. João Caram Representação Sinal-Magnitude ● Representando com 8 bits (1 byte): ● Devemos completar os bits à esquerda com … 0 ● O último bit é utilizado para sinal: 0 → número positivo 1 → número negativo ● Assim, 14 (10) = 1110 (2) , com 8 bits: 00001110 ● Como ficaria representado o valor -14 ? 10001110 Representação em Complemento-1 • A Representação em Complemento a 1 (Complemento Booleano) de um número binário é obtida efetuando-se a negação booleana de todos os bits do número. É usado o operador lógico NÃO (NOT = ~ bit a bit C/C++). Para negar o valor de um número deve-se substituir cada bit 1 pelo bit 0 cada bit 0 pelo bit 1. • Exemplo: 310 = 000000112 -310 = ~000000112 = 111111002 (NÃO bit a bit) Representação em Complemento-2 • A Representação em Complemento a 2 de um número binário de m bits é obtida somando- se 1 ao complemento 1. Caso ocorra um “carry” no bit MSB, este bit é descartado. Deve-se completar previamente com zeros à esquerda até completar os m bits. • Exemplo: 310 = 000000112 (m= 8 bits) ~000000112 = 111111002 (complemento-1) + 1 -310 = 111111012 (complemento-2) Representação em Complemento-2 • A Representação em Complemento a 2 de um número binário de m bits é obtida somando- se 1 ao complemento 1. Caso ocorra um “carry” no bit MSB, este bit é descartado. Deve-se completar previamente com zeros à esquerda até completar os m bits. • Exemplo: 310 = 000000112 (m= 8 bits) ~000000112 = 111111002 (complemento-1) + 1 -310 = 111111012 (complemento-2) Complemento-2 (exemplos) • +3 = 00000011 • +2 = 00000010 • +1 = 00000001 • +0 = 00000000 • -1 = 11111111 • -2 = 11111110 • -3 = 11111101 Vantagens do Complemento-2 • Representation única do zero • Operações aritméticas simplificadas • É a representação mais usada. Revisando: – +310 = 000000112 – Complemento Booleano !000000112 = 111111002 – Somar 1 +12 – -310 = 111111012 Complemento-2 (exemplo : overflow) Caso especial 1 • 0 = 00000000 • Não bit a bit 11111111 • somar 1 +1 • Resultado 1 00000000 • Overflow (O bit carry 1 MSB is ignorado), então: • - 0 = 0 √ Complemento-2 (exemplo : overflow) Caso especial 2 • -128 = 10000000 • not bit a bit 01111111 • Somar 1 +1 • Resultado 10000000 • Então: • -(-128) = -128 ? • Monitorar MSB (bit de sinal) para o caso do menor número negativo representável com m bits, no caso (-12810 ) = 10000000, ou seja, (+12810 ) não pode ser representado com 8 bits em complemento-2. Faixa de valores - Complemento-2 • Complemento-2 de 8 bits – +127 = 01111111 = 27 -1 – -128 = 10000000 = -27 • Complemento-2 de 16 bits – +32767 = 011111111 11111111 = 215 - 1 – -32768 = 100000000 00000000 = -215 Caracterísiticas e valores: complemento-2 32 bits Parte II: Números Fracionários: ponto flutuante (PF) Referências: Mário Monteiro (IOC) : cap 3, 4 e apêndice A. William Stallings (AOC) : cap 8, apêndices A e 8A. A.S. Tanenbaum (OEC) : cap 3, apêndices A e B Conversão de Números Fracionários É semelhante aos números inteiros, porém com expoentes negativos: N = d-1Xbr-1 + d-2Xbr-2 + ... + d-mXbr-m onde m é a quantidade de algarismos fracionários. Exemplo: converter 1001,10102 para a base 10 Usando o esquema de numeração posicional: 3 2 1 0 -1 -2 -3 1 0 0 1 , 1 0 12 = 24 + 20 + 2-1 + 2-3 = 9,62510 1001,10102 = 9,62510 Conversão de números fracionários da base 10 para a base 2 Fazer a operação inversa: Exemplos 1) Converter o número 0,7510 para a base 2 2) Converter o número 9,62510 para a base 2 3) Converter o número 0,726562510 para a base 2. Conversão de 0,7510 para a base 2 i Valor a ser multiplicado ResultadoParte Inteira = d-i Parte Fracionária por Br = 2 1 0,75 1,5 1 0,5 1 0,5 1,0 1 0,0 0,7510 = 0,112 PROVA: 0 -1 -2 0 , 1 12 = 2-1 + 2-2 = 1/21 + 1/22 = = 0,510 + 0,2510 = 0,7510 OK Conversão de 9,62510 para a base 2 9,62510 = 910 + 0 ,62510 910 = 10012 i Valor a ser multiplicado Resultado Parte Inteira = d-i Parte Fracionária por Br = 2 1 0,625 1,25 1 0,25 1 0,25 0,5 0 0,5 2 0,5 1,0 1 0,0 9,62510 = 10012 + 0,1012 = 1001,1012 Conversão de 0,726562510 para a base 2 -i Valor a ser multiplicado Resultado Parte Inteira = d-i Parte Fracionária por Br = 2 1 0,7265625 1,453125 1 0,453125 2 0,453125 0,90625 0 0,90625 3 0,90625 1,8125 1 0,8125 4 0,8125 1,625 1 0,625 5 0,625 1,25 1 0,25 6 0,25 0,50 0 0,50 1 0,50 1,00 1 0,00 0,726562510 = 0,10111012 PUC Minas – Sistemas de Informação – Introdução à Computação – Prof. João Caram Ponto fixo ● Ponto fixo: a vírgula é subentendida sempre em uma mesma posição ● Representação por sinal e magnitude: ● Convenção: bit 0 para positivo ● Ex: 00001001 10011111 Sinal Magnitude 1 bit 7 bits PUC Minas – Sistemas de Informação – Introdução à Computação – Prof. João Caram Ponto fixo ● Ponto fixo causa desperdícios inaceitáveis em valores muito grandes ou muito pequenos. ● Ex: 25370000000000,000000000000000 + 00000000000000,000000000000074 = 25370000000000,000000000000074 Onde colocar a vírgula (ponto) binário ? 962.500 ou 96,25 x 104 0,000.096.250 ou 96,25 x 10-6 Como representar ? • Números muito grandes 9.349.398.989.787.762.244.859.087.678 • Números muito pequenos 0,0000000000000000000000045691 • Números racionais e irracionais 2/3 e ∏ Usar a notação científica 6.02 x 10 23 expoente basemantissa ponto decimal Sign, magnitude Sign, magnitude Notação científica • 962.500 = 9,625 x 105 • 0,000.096.250 = 9,625 x 10-5 • 976.000.000.000.000 = 9,76 x 1014 • 96,25 = 9,625 x 101 PUC Minas – Sistemas de Informação – Introdução à Computação – Prof. João Caram ●Ponto flutuante ● Ponto flutuante: representação baseada na notação científica ● 2,537 x 10E13 ● 7,4 x 10E-14 ● Ou seja, é necessário representar: – sinal – parte fracionária (mantissa) – expoente PUC Minas – Sistemas de Informação – Introdução à Computação – Prof. João Caram Ponto flutuante: passos ● Converter para base decimal ● Normalizar a mantissa ● Deve ser fracionária ● Primeiro algarismo após a vírgula deve ser 1 ● Definir expoente e sinal IEEE 754 • Padrão (Standard) para armazenamento de PF • Padrão para 32 e 64 bits • Expoentes de 8 e 11 bits respectivamante • Formatos extendidos (para mantissa e expoente) para resultados intermediários Padrão IEEE 754 • Padrão (standard) para representar e armazenar números em ponto flutuante (PF) nos computadores • 32 bits para precisão simples (ex: float) • 64 bits para precisão dupla (ex: double) • Expoentes de 8 e 11 bits respectivamante Formatos IEEE 754 Padrão IEEE 754 para precisão simples: 32 bits 1 8 23 sinal expoente excesso 127 mantissa: normalizado com bit implícito 1.M O expoente real é e = E - 127 S E M N = (-1)S x 2 E-127 x(1.M) Onde: 0 < E < 255 IEEE 754: ponto flutuante (PF) • S armazena o sinal: 0(positivo) e 1(negativo) • EP(expoente polarizado) = expoente + polarização • expoente indica a posição da vírgula (ponto) • A mantissa é armazenada com o bit implícito • (-1)sinalx (1 + MANTISSA) x 2expoente polarizado S EP MANTISSA Exemplos de Ponto flutuante Faixa dos números PF: 32 bits • Para números de 32 bits (precisão simples) • expoente de 8 bits • 10-38 a 10+38 • Acurácia • O efeito de mudar o LSB da mantissa • Mantissa de 23 bits 2-23 ≈ 1.2 x 10-7 • Aproximadamente 6 casas decimais Faixa dos números PF: 64 bits • Para números de 64 bits (precisão dupla) • expoente de 11 bits • +/- 2256 ≈ 10-308 a 10+308 Números binários representáveis: 32 bits Problemas com números de PF • Overflow • Underflow • Erro de arredondamento PUC Minas – Sistemas de Informação – Introdução à Computação – Prof. João Caram Overflow ● Overflow é quando o tamanho da representação não é suficiente para o número desejado ● Ex: 96 + 64, em representação de ponto fixo com 8 bits (1 sinal + 7 magnitude) 01100000 +01000000 =10100000 → -32 ● Lembram-se do bug do milênio? Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62 Slide 63 Slide 64 Slide 65 Slide 66 Slide 67 Slide 68 Slide 69 Slide 70 Slide 71 Slide 72 Slide 73 Slide 74 Slide 75 Slide 76 Slide 77 Slide 78 Slide 79 Slide 80 Slide 81 Slide 82 Slide 83 Slide 84 Slide 85 Slide 86
Compartilhar