Baixe o app para aproveitar ainda mais
Prévia do material em texto
Apêndice A A. Números Binários Aritmética Computacional ≠ Aritmética Tradicional ⇓ I Computadores realizam operações com números cuja a precisão é finita e fixa II E utilizam o sistema binário ao invés do tradicional A.1. Números de Precisão Finita (NPF) � Quantos dígitos decimais são gastos para representar um número? � Fora do ambiente computacional, não há limites para representações numéricas (Ex.: Ordem de grandeza dos astros) � Nos computadores, a quantidade de memória para armazenamento de dados e informações, está acoplado ao projeto físico do equipamento (Hardware) � Por exemplo, vamos examinar o conjunto dos números inteiros positivos com representação de 03 dígitos decimais, sem ponto decimal e sinal: 1000 ELEMENTOS 000 001 002 003 001 . . . . 997 998 999 � Baseados nas restrições I e II, e impossível expressar: (a) >999 (b) <0 (c) Frações (d) Irracionais (e) Complexos � A propriedade de “Fechamento”, importante na aritmética de inteiros, em relação as operações adição, subtração, e multiplicação, não se aplica em NPF. � Por exemplo: o 600 + 600 = 1200 (overflow) o 003 – 005 = -2 (underflow) o 050 X 050 = 2500 (overflow) o 007 / 002 – 3,5 (∉∉∉∉) � Dividem-se as violações em dois grupos: o Resultados maiores (overflow) e menores (underflow) que os limites. o Não pertencentes ao conjunto.(∉∉∉∉) � “Por realizarem operações com NPF’s, pois possuem memórias limitadas, os resultados de certos cálculos estarão errados pelo ponto de vista da matemática clássica. Um dispositivo de calculo que fornece respostas “erradas” apesar de estar em bom estado, é a conseqüência lógica de sua natureza finita.” � A álgebra dos NPF’s também é diferente. Analise os exemplos: o Para a = 700, b = 400, c = 300; Associativa: a + (b - c) = (a + b) - c o Para a = 5, b = 210, c = 135; Distributiva: a X (b - c) = a X b – a X c � Concluímos que os computadores são dispositivos inadequados? � É importante entender como os computadores trabalham e suas limitações. A.2. Sistemas de Numeração: � Numero Decimal: Seqüência de dígitos decimais com ou sem um ponto decimal. o Ex.: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 (Base 10) � Para os computadores nos interessam as bases 2, 8 e 16, respectivamente sistemas de numeração binário, octal e hexadecimal. � Um sistema de numeração K qualquer requer K símbolos que representam is dígitos de 0 a K-1. o 0 e 1 (Base 2) � Um numero decimal possui a seguinte forma: o dn . . . d2 d1 d0 , d-1 d-2 d-3 . . . d-k n Numero = ∑ di X 10i i=-k � Para se evitar ambigüidades, utiliza-se um subscrito com o número da base entre parênteses: Ex.: 100(2) ≠ 100(10) ≠ 100(8) ≠ 100(16) 100(2) = 1 X 2 2 + 0 X 21 + 0 X 20 = 4(10) 100(10) = 1 X 10 2 + 0 X 101 + 0 X 100 = 100(10) 100(8) = 1 X 8 2 + 0 X 81 + 0 X 80 = 64(10) 100(16) = 1 X 16 2 + 0 X 161 + 0 X 160 = 256(10) A.3. Conversão entre Bases: � Em geral, se sabemos como converter um número de uma base b qualquer para a base 10, qualquer base destino pode ser alcançada: o Formula Geral: Xn . . . X2 X1 X0 , X-1 X-2 X-3 . . . X-k (b)= Xn * b m + X1 * b 1 + X0 * b 0 + X-1 * b -1 + X-2 * b -2 + X-3 * b -3 +. . . X-k * b -k (10)= � Entre os números da base 2, 8 e 16 há um procedimento mais fácil: o (2) (8): Dividir em grupos de 03 bits o (8) (2): Substituir cada digito por um binário de 03 bits o (2) (16): Dividir em grupos de 03 bits o (16) (2): Substituir cada digito por um binário de 04 bits A.4. Números Binários Negativos: � Em geral, utilizam-se 3 sistemas para a representação de números negativos em computadores digitais: o Sinal de Magnitude (SM): Bit mais a esquerda é o sinal (0 é + | 1 é -). Os bits restantes representam a magnitude absoluta do número. o Complemento de Um (SC1): Também possuem um bit de sinal (0 é + | 1 é -) porém os bits restantes são invertidos um a um. o Complemento de Dois (SC2): Também possui um bit de sinal (0 é + | 1 é -) os bits restantes são invertidos um a um a seu valor. Ex.: Convertendo o número 6 para -6(SM), -6(SC1) e -6(SC2) em binário. • 6(10) = 00000110(2) • 6(SM) = 10000110(2) (SM) • 6(SC1) = 11111001(2) (SC1) • 6(SC2) = 11111010(2) (SC1) o Observação: O padrão adotado para expressar o número de 7 bits para a mantissa e 1 bit para o sinal. � Tanto o sinal de magnitude quanto o complemento de um têm representações falhas para o número zero: +0 e -0. � No complemento de dois esse problema não ocorre. o 00000000(2) = 00000000(2) (SCR2). � Nosso objetivo: o Uma única representação para o número zero. o Expressar a mesma quantidade de números positivos e negativos. � Entretanto, qualquer conjunto com a mesma quantidade de números ímpares e pares, além do zero, possui um número ímpar de elementos. O que se torna impossível de expressar por um número de n bits (2n é sempre par). Gerando portanto um padão binário extra. A.5. Aritmética Binária: � A adição de dois bits é expressa pela tabela abaixo onde X e Y são números de 1 bit. x y s c 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 � A subtração pode ser feita de duas formas: o Baseado no SC1: Expressa-se o valor negativo no padrão SC1, e realiza-se a soma como valor positivo. Se houver “estouro” (overflow), o resultado deverá ser somado de mais um e será positivo. Ex.: 16(10) – 5(10) = 11(10) 16(10) ⇒ - 5(10) ⇒ 10000(2) + 00101(2) 11(10) ⇒ 101010(2) (SC1) 10(10) + 1(10) = 11(10) 10(10) ⇒ + 1(10) ⇒ 1010(2) + 1(2) 11(10) ⇒ 1011(2) (SC1) 5(10) – 16(10) = -11(10) 5(10) ⇒ -16(10) ⇒ 00101(2) + 01111(2) -11(10) ⇒ 10100(2) (SC1) 16(10) – 5(10) = 11(10) 16(10) ⇒ - 5(10) ⇒ 10000(2) + 11011(2) 11(10) ⇒ 101011(2) (SC2) S = x+y C é o vai 1 Estouro ⇒ Número positivo Não houve estouro ⇒ Número Negativo Estouro ⇒ Número Positivo (Não precisa somar o estouro) Apêndice B B. Números em Ponto-flutuante � Metodologia alternativa para representação de intervalos numéricos muito grandes. � Necessita-se de um sistema de representação de números em que o intervalo dos números exprimíveis seja independente da quantidade de dígitos significativos. � Baseia-se na notação científica usada na física, química e engenharia. B.1. Princípios do ponto-flutuante � Uma maneira de separar o intervalo da precisão: n = f * 10e Onde: f ⇒ Fração ou mantissa e ⇒ Expoente(e pertence aos inteiros) � A versão desta notação é chamada de ponto-flutuante. Ex.: 3.14 = 0.314 x 101 0.000001 = 0.10 x 10-5 1941 = 0.1941 x 104 � Intervalo é em função do número de dígitos do expoente. � Precisão é em função do número de dígitos da fração. � Em geral: 0.1 ≤ |f| < 1 � Os números em ponto-flutuante, com precisão e mantissa predefinidos, diferenciam-se dos números reais, pois nem todos os números em um intervalo contínuo podem ser representados e conseqüentemente não possuem a mesma densidade: z = (x + y) / 2 x, y e z pertencem ao conjunto dos números reais Ex.: Seja: o Mantissa de três dígitos, com sinal, e 0.1 ≤ |f| < 1 ou zero. o Expoente de dois dígitos com sinal Obtém-se: o Números variando em grandeza de: -0.100 x 10-99 a 0.999 x 1099 Overflow Negativo (menor que -10100) Exprimíveis Negativos (Entre -10100 e -10-100) Underflow Negativo (Entre -10-100 e zero) Underflow Positivo (Entre zero e 10-100) Exprimíveis Positivos (Entre 10-100 e 10100) Overflow Positivo (Maior que10100) � Quando não podemos expressar um número com exatidão, deve-se utilizar o número mais próximo. Este processo é chamado de arredondamento. � A modificação do número de dígitos na mantissa ou expoente, apenas desloca os limites das regiões dos números exprimíveis. � Nos computadores, utiliza-se uma representação semelhante. Por questões de eficiência a base de exponenciação é múltiplo de 2 (2, 4, 8 ou 16) em vez de 10, e a mantissa em uma cadeia de dígitos binários, 4, 8 ou 16: Se o dígito mais a esquerda é zero, todos os dígitos podem ser deslocados uma posição para a esquerda e o expoente diminuído de 1 ⇓ Normalização � A escolha por números normalizados facilita na definição de padrões → só exite uma forma normalizada. Ex.: o Mantissa de 16 bits (com sinal) o Expoente de 7 bits (em notação em excesso de 64) o O ponto está a esquerda do bit mais à esquerda da mantissa. Base 2: Não normalizado: 0 1010100. 0000000000011011 + 84-64=20 2-12 + 2-13 + 2-15 + 2-16 = 220 * ( 2-12 + 2-13 + 2-15 + 2-16) = 432 Normalizando: o Deslocar a mantissa 11 bits à esquerda e subtrair 11 do expoente. 0 1001001. 1101100000000000 + 73-64=9 2-1 + 2-2 + 2-4 + 2-5 = 29 * (2-1 + 2-2 + 2-4 + 2-5) = 432 Apêndice C C. Códigos Numéricos C.1 Código 9876543210 O código 9876543210 é um código binário que converte cada dígito decimal em um conjunto de 10 bits, onde o valor 1 assume a posição correspondente ao número decimal, e o restante é completado com o valor 0. Nesse código temos uma decodificação de "uma saída de 10" ou seja, um único bit será 1, enquanto os demais serão 0, conforme o dígito a ser representado, conforme a seguinte tabela: Decimal 9876543210 0 1 1 10 2 100 3 1000 4 10000 5 100000 6 1000000 7 10000000 8 100000000 9 1000000000 C.2 BCD 8421 O código BCD 8421 (de Binary-coded decimal 8421) é um sistema de codificação de números decimais em binários de quatro bits. Os valores 8421 são respectivamente os valores de 2 elevado ao valor de sua posição (3,2,1,0). Este código assume apenas 10 dígitos, variando de 0 a 9. Dígito decimal BCD 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 Se quisermos representar em BCD o número 23,25 não o convertemos da forma convencional por divisões sucessivas, mas sim, tomamos cada dígito e o convertemos no BCD equivalente, conforme segue: 2 3 2 5 0010 0011 0010 0101 Veja então que para cada dígito decimal sempre teremos quatro dígitos binários ou bits e que os valores 1010, 1011, 1100, 1101 e 1111 não existem neste código. C.3 Códigos BCD de 4 Bits Existem diversos códigos BCDs que assumem valores diferentes de acordo com alguma variação em seu cálculo. Entre eles podemos destacar o BCD 7421, BCD 2421 e o BCD 5211. Decimal BCD 8 4 2 1 Excesso-3 ou Código de Stibitz BCD 2 4 2 1 Código Aiken BCD 8 4 −2 −1 IBM 702 IBM 705 IBM 7080 IBM 1401 8 4 2 1 0 0000 0011 0000 0000 1010 1 0001 0100 0001 0111 0001 2 0010 0101 0010 0110 0010 3 0011 0110 0011 0101 0011 4 0100 0111 0100 0100 0100 5 0101 1000 1011 1011 0101 6 0110 1001 1100 1010 0110 7 0111 1010 1101 1001 0111 8 1000 1011 1110 1000 1000 9 1001 1100 1111 1111 1001 C.4 Código ASCII ASCII (acrônimo para American Standard Code for Information Interchange, que em português significa "Código Padrão Americano para o Intercâmbio de Informação") é uma codificação de caracteres de sete e oito bits (versão estendida) baseada no alfabeto inglês. Os códigos ASCII representam texto em computadores, equipamentos de comunicação, entre outros dispositivos que trabalham com texto. A codificação define 128 ou 256 caracteres, preenchendo completamente os oito bits disponíveis. Desses, 33 não são imprimíveis, como caracteres de controle atualmente não utilizáveis para edição de texto, porém amplamente utilizados em dispositivos de comunicação, que afetam o processamento do texto. Exceto pelo caractere de espaço, o restante é composto por caracteres imprimíveis. ASCII (7Bits) ASCII (8 bits – estendida) Apêndice D D. Mapa de Karnaugh D.1. Introdução � Forma tabular de representar funções lógicas � Aplicação direta nas simplificações e minimizações � Resume-se em uma figura geométrica (quadriculo) para cada linha da tabela verdade. D.2. Construção do Mapa K até 04 variáveis D.2.1. Mapa K de 01 variável A 0 1 A 0 1 � A forma do Mapa K, depende somente do número de variáveis do problema, e não da expressão lógica que será transcrita para ele. D.2.2. Mapa K de 02 variáveis B A 0 1 0 2 1 3 Linha A B ƒƒƒƒ (A,B) 0 0 0 1 0 1 2 1 0 3 1 1 TABELA VERDADE MAXTERMOS OU MINITERMOS QUADRICULOS DO MAPA K Ex.: o Representar no Mapa K a função determinada pela Tabela Verdade abaixo: Linha A B ƒƒƒƒ (A,B) 0 0 0 1 1 0 1 0 2 1 0 0 3 1 1 1 � Em geral registra-se em uma Tabela Verdade os 1’s e 0’s, e em uma Mapa K registra-se os 1’s ou 0’s. � Podemos verificar que: o ƒ (A,B) = A . B + A . B = mo + m3 (MINTERMOS) o ƒ (A,B) = (A + B) . (A + B) = mo + m3 (MINTERMOS) � Um Mapa K alternativo para 02 variáveis (será usado para acima de 02 variáveis também!): Ex.: o Seja a Tabela Verdade: B A 0 1 0 0 1 2 0 1 1 0 3 1 MINTERMOS B A 0 1 0 0 1 2 - 1 1 - 3 1 MAXTERMOS B A 0 1 0 0 - 2 0 1 1 0 3 - B A 00 01 11 10 0 1 1 0 3 1 2 0 A A A B A AB 00 01 11 10 A.B 0 - 1 - 3 1 2 - AB 00 01 11 10 A+B 0 - 1 1 3 1 2 1 AB A . B A + B A ⊕⊕⊕⊕ B 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 AB 00 01 11 10 A⊕⊕⊕⊕B 0 - 1 1 3 - 2 1 D.2.3. Mapa K de 03 variáveis o X = (A.B.C)+(A.B.C)+ +(A.B.C) +(A.B.C) o m2 = A.B.C o m4 = A.B.C o m1 = A.B.C o m7 = A.B.C D.2.4. Mapa K de 04 variáveis o X = (A.B.C.D)+(A.B.C.D)+ +(A.B.C.D) +(A.B.C.D) o m8 = A.B.C.D (8 = 1000) o m12 = A.B.C.D (12 = 1100) o m1 = A.B.C.D (1 = 0001) o M3 = A.B.C.D (3 = 0011) C AB 00 01 11 10 0 0 - 2 1 6 - 4 1 1 1 - 3 - 7 1 5 - A B C A . B 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 CD AB 00 01 11 10 00 0 - 4 - 12 1 8 1 01 1 1 5 - 13 - 9 - 11 3 1 7 - 15 - 11 - 10 2 - 6 - 14 - 10 - D.3. Simplificação de funções lógicas por Mapa K D.3.1. Introdução: � Quadrículos adjacentes horizontalmente e verticalmente (mas não diagonalmente) correspondem a mintermos ou a maxtermos que diferem em apenas uma variável, que aparece complementada em um termo e não complementada em outro. o m8 = A.B.C.D (8 = 1000) o m12 = A.B.C.D (12 = 1100) o m1 = A.B.C.D (1 = 0001) o M3 = A.B.C.D (3 = 0011) � Dois termos com quatro variáveis foram substituídos por um termo de três variáveis � Mérito doMapa K: Possibilitar a determinação da combinação de mintermos através da visualização geométrica. D.3.2. O principio geral: � Qualquer par de mintermos adjacentes pode ser combinado em um único termo que resulta em uma variável a menos. � Se englobamos 2M termos, irão desaparecer M variáveis. � O termo combinado é determinando através da eliminação da variável que aparece completando em um mintermo e não aparece complementa em outro. D.3.3. Adjacências lógicas adicionais: � Mintermos geometricamente adjacentes são também logicamente adjacentes � Há casos em que os quadrículos na coluna mais a esquerda, são logicamente adjacentes aos quadrículos situados na mesma linha e na coluna mãos a direita. o M8 ADJ m0; m1 ADJ m9 � Os quadrículos na linha superior adjacentes aos situados na linha inferior e na mesma coluna. CD AB 00 01 11 10 00 0 - 4 - 12 1 8 1 01 1 1 5 - 13 - 9 - 11 3 1 7 - 15 - 11 - 10 2 - 6 - 14 - 10 - CD AB 00 01 11 10 00 0 - 4 - 12 1 8 1 01 1 1 5 - 13 - 9 - 11 3 1 7 - 15 - 11 1 10 2 - 6 - 14 - 10 - A.C.D A.B.D
Compartilhar