1 / 48

A Informação e sua Representação (Parte I)

A Informação e sua Representação (Parte I). A Informação e sua Representação. Em um computador são armazenados e processados apenas dados e instruções. Um computador executa operações sobre dados numéricos (os números) ou alfabéticos (letras e símbolos).

shania
Download Presentation

A Informação e sua Representação (Parte I)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Informação e sua Representação (Parte I)

  2. A Informação e sua Representação • Em um computador são armazenados e processados apenas dados e instruções. • Um computador executa operações sobre dados numéricos (os números) ou alfabéticos (letras e símbolos). • É preciso definir uma forma de representar os dados, codificados em uns e zeros, que possam ser interpretados pelo computador, de forma correta e eficiente (com bom desempenho e pouco consumo de memória).

  3. A Informação e sua Representação Os dados podem ser: • Alfabéticos • letras, números e símbolos (codificados em ASCII e EBCDIC) • Numéricos • ponto fixo, números inteiros • ponto flutuante (números reais ou fracionários) • BCD (representação decimal codificada em binário) • Lógicos • Variáveis que possuem apenas dois valores para representação (FALSO e VERDADEIRO).

  4. Representação de Números Inteiros • Todos os dados numéricos são representados em um computador como uma seqüência de 0s e 1s. • Os números podem ser positivos ou negativos. As operações aritméticas, em particular a subtração, podem originar resultados negativos. • Um aspecto primordial a ser definido seria então como representar o sinal. • Como é que um computador sabe que um dado número é negativo?

  5. Representação de Números Inteiros • A resposta a esta pergunta é que isso depende da convenção usada na representação de números. • As convenções mais usuais são as seguintes : • Representação de grandeza com sinal (sinal e magnitude) • Representação em complemento de 2 Outras formas de representação: Complemento de 1: para negar o valor de um número deve-se inverter os bits do sinal (obsoleta) e Excesso de 2m-1: representação do número é dada pela soma de seu valor absoluto com 2m-1. Exemplo: Um sistema de 8 bits é chamado de excesso de 128 e um número é armazenado com seu valor real somado a 128. Ex.:-3=011111012 (-3+128=125)

  6. sinal magnitude Representação de grandeza com sinal • O bit mais significativo representa o sinal: • 0 (indica um número positivo) • 1 (indica um número negativo) • Os demais bits representam a grandeza (magnitude). • O valor dos bits usados para representar a magnitude independe do sinal (sendo o número positivo ou negativo, a representação binária da magnitude será a mesma). Exemplos: (8 bits) • 001010012 = +4110 • 101010012 = - 4110

  7. Valor decimal Valor binário com 8 bits (7 + bit de sinal) +9 00001001 -9 10001001 +127 01111111 -127 11111111 Representação de grandeza com sinal Exemplos: (8 bits) Assim, uma representação em binário com n bits teria disponível para a representação do número n-1 bits (o bit mais significativo representa o sinal).

  8. Representação de grandeza com sinal • Apresenta uma grande desvantagem: ela exige um grande número de testes para se realizar uma simples soma de dois números inteiros. • Requer que na UAL existam dois circuitos distintos para a adição e a subtração. • Existem duasrepresentações para o zero.

  9. Representação em complemento de 2 • Representação de números inteiros positivos • igual à representação de grandeza com sinal. • Representação de números inteiros negativos • mantém-se os bits menos significativos da direita para a esquerda até à ocorrência do primeiro bit igual a 1 (inclusive), sendo os bits restantes complementados de 1. • Esta operação equivale a realizar: complemento de 1 + 1. Exemplo : (8 bits) 000011002 = +1210 11110100c2 = -1210 Exemplo : (8 bits) 001010012 = +4110 11010111c2 = -4110

  10. Representação em complemento de 2 Exemplo: Números inteiros codificados embinário de 8 bitsem um sistema que utiliza complemento de 2: (-128, -127, ..., -2. -1, 0, +1, +2,..., +127) {10000000, 10000001, ..., 11111110, 11111111, 00000000, 00000001, 00000010, ..., 01111111} Bit mais significativo informação de sinal (0 = positivo e 1 = negativo)

  11. Representação em complemento de 2 • Requer um só circuito (somador) para fazer a adição e a subtração. • Há apenas uma representação para o valor 0 (disponibilidade para mais uma representação) - mais um número negativo pode ser representado (para 8 bits, pode-se representar o número –12810 100000002) . • A quantidade de números positivos é diferente da quantidade de números negativos.

  12. Representação de Números Inteiros Exemplo: Escreva os números decimais abaixo nas seguintes representações: sinal e magnitude; representação em complemento de 1; representação em complemento de 2 e excesso de 128 (utilizando 8 bits, se existir representação). a) -1 b) –20 c) –127 d) –128

  13. Representação de Números Inteiros Números negativos de 8 bits expressos em 4 sistemas diferentes

  14. Representação de Números Reais • Em alguns tipos de cálculo, a faixa de variação dos números envolvidos é muito grande. • Exemplo: • 1) Massa do elétron - da ordem de 9 x 10-28 gramas • 2) Massa do Sol - aproximadamente igual a 2 x 1033 gramas • Faixa de variação: > 1060 • Exemplo de representação (34 dígitos à esquerda do ponto decimal e 28 dígitos à direita do mesmo) • Como representar esses números no computador? 1) 0000000000000000000000000000000000.0000000000000000000000000009 2) 2000000000000000000000000000000000.0000000000000000000000000000

  15. Representação de Números Reais • Forma usual de representação de números reais: parte inteira, vírgula (ou ponto), parte fracionária. • Esta representação, embora cômoda para cálculos no papel, não é adequada para processamento no computador. • Exemplo: 45,724

  16. Representação de Números Reais • O número 45,724 pode ser expresso como: • 45,724 x 100 • 45724 x 10-3 • 0,45724 x 102 • É necessário o uso de um sistema de representação de números no qual a faixa de variação dos números seja independente do número de dígitos significativos dos números representados.

  17. Representação em Ponto Flutuante • Uma maneira de separar a faixa de variação dos números de sua precisão consiste em representá-lo na notação científica. n = f x 10e • f - fração ou significando (ou mantissa) • e - expoente (inteiro positivo ou negativo) • Qualquer número (inteiro ou fracionário) pode ser expresso no formato número x baseexpoente, podendo-se variar a posição da vírgula e o expoente. • Denominação (computacional): representação em ponto flutuante (o ponto varia sua posição, modificando, em conseqüência, o valor representado).

  18. Representação em Ponto Flutuante • Representação pode variar (“flutuar”) a posição da vírgula, ajustando a potência da base. • Exemplos: • 3,14 = 0,314 x 10-1 = 3,14 x 100 • 0,000001= 0,1 x 10-5 = 1,0 x 10-6 • 1941 = 0,1941 x 104 = 1,941 x 103 • A faixa de variação dos números é determinada pela quantidade de dígitos do expoente e a precisão é determinada pela quantidade de dígitos do significando.

  19. Representação em Ponto Flutuante • Forma normalizada: usa um único dígito antes da vírgula, diferente de zero (*). • Na representação computacional de números em ponto flutuante, a representação normalizada é, em geral, melhor que a não-normalizada. • Forma normalizada: só existe uma forma de representar um número. • Forma não normalizada: um mesmo número pode ser representado de diversas maneiras. (*) Padrão IEEE 754 para números em ponto flutuante – significando normalizado – começa com um bit 1, seguido de um ponto (vírgula) binário e pelo resto do significando (número = ± 1,_ _ ... x 2exp ) Mantissanormalizada - começa com o ponto (vírgula) binário seguido por um bit 1 e pelo resto da mantissa (bit antes da vírgula igual a zero).

  20. Representação em Ponto Flutuante Ilustração: • No sistema binário: • 110101 = 110,101x23 = 1,10101x25 = 0,0110101x27 • Números armazenados em um computador - os expoentes serão também gravados na base dois • Como 310 = 112 e 7=1112 • 110,101 x (10)11 = 1,10101x(10)101 = 0,0110101x(10)111 • Representação normalizada - há apenas um “1” antes da vírgula • Exemplo: 1,10101x(10)101

  21. Representação em Ponto Flutuante Algumas definições: • No número 1,10101x(10)101: • 1,10101 = significando • 101 = expoente • OBS: • a base binária não precisa ser explicitada (o computador usa sempre esta) • O “1” antes da vírgula, na representação normalizada – se esta for adotada, também pode ficar implícito, economizando um bit (“bit escondido”)

  22. A Informação e sua Representação (Parte II)

  23. Operações aritméticas – Sistema Binário • Adição • Subtração • Multiplicação • Divisão As operações aritméticas nos sistemas binário, octal, decimal e hexadecimal obedecem a regras similares.

  24. Adição – Sistema binário • Adiçãodeslocamento à direita na série, cada deslocamento correspondendo a adição de uma unidade. • Adição entre dois números de um algarismo pode-se obter resultados com um ou dois dígitos. • Estouro (maior algarismo é ultrapassado): Carry(transporte) ou vai-um.

  25. Adição – Sistema binário Regra:

  26. Subtração – Sistema binário • Inversa à adição deslocamento à esquerda do minuendo de tantas unidades quantas forem o subtraendo. • Se o minuendo é menor que o subtraendo ? Estourosubtrair uma unidade do minuendo ou somar uma unidade ao subtraendo da casa seguinte. • Estouro borrow (empréstimo) ou vem-um.

  27. Subtração – Sistema binário Regra:

  28. Outras Operações Aritméticas Multiplicação – Sistema binário Regra 0  0 = 0 0  1 = 0 1  0 = 0 1  1 = 1 Multiplicação pela base • Desloca-se os algarismos de um número para a esquerda ou a sua vírgula para a direita.

  29. Outras Operações Aritméticas Divisão – Sistema binário • Procedimento igual ao dos decimais, considerando-se apenas que: 0/1 = 0 e 1/1 = 1. • Divisão pela Base • Deslocando-se os algarismos de um número para a direita ou a sua vírgula para a esquerda.

  30. A Informação e sua Representação • Aritmética em Sinal e Magnitude • Aritmética em Complemento de 2

  31. Aritmética em Sinal e Magnitude Algoritmo para operação aritmética de adição: • Verificam-se os sinais dos números e efetua-se uma comparação entre eles. • Se ambos os números têm o mesmo sinal, somam-se as magnitudes; o sinal do resultado é o mesmo das parcelas. • Se os números têm sinais diferentes: a) identifica-se a maior das magnitudes e registra-se o seu sinal; b) subtrai-se a magnitude menor da maior (apenas as magnitudes); c) sinal do resultado é igual ao sinal da maior magnitude.

  32. Aritmética em Sinal e Magnitude • Exemplo: Realize as operações aritméticas a seguir (em sinal e magnitude). Considere a palavra de dados com 6 bits. a) (+13)10 + (+12)10 b) (+18)10 + (-11)10 c) (-21)10 + (+10)10 d) (-17)10 + (-9)10 e) (+17)10 + (+19)10 f) (-17)10 + (-19)10

  33. Aritmética em Sinal e Magnitude Solução: a) (+13)10 + (+12)10 b) (+18)10 + (-11)10 c) (-21)10 + (+10)10 d) (-17)10 + (-9)10 +13 001101 +12 001100 +25 011001 +18 010010 -11 101011 + 7 000111 -21 110101 +10 001010 - 11 101011 -17 110001 -9 101001 -26 111010

  34. Aritmética em Sinal e Magnitude Solução: a) (+17)10 + (+19)10 b) (-17)10 + (-19)10 “vai 1” “vai 1” +17 010001 +19 010011 +36 100100 -17 110001 -19 110011 -36 100100 overflow Estouro (overflow) - existência de um “vai 1” para o bit de sinal. Faixa de representação de valores para 6 bits (em sinal e magnitude)  -31 a + 31.

  35. Aritmética em Sinal e Magnitude Subtração (Minuendo - Subtraendo = Resultado) Algoritmo para operação aritmética de subtração: 1. Troca-se o sinal do subtraendo. 2. Procede-se como no algoritmo da adição.

  36. Aritmética em Sinal e Magnitude • Exemplo: Realize as operações aritméticas a seguir (em sinal e magnitude). Considere a palavra de dados com 6 bits. a) (-18)10 - (+12)10 b) (-27)10 - (-14)10 c) (+27)10 - (+31)10 d) (+19)10 - (-25)10

  37. Aritmética em Sinal e Magnitude Solução: a) (-18)10 - (+12)10 b) (-27)10 - (-14)10 c) (+27)10 - (+31)10 d) (+19)10 - (-25)10 -1210 +1410 -18 110010 -12 101100 -30 111110 -27 111011 +14 001110 -13 101101 -3110 +2510 vai 1 +27 011011 -31 111111 - 4 100100 +19 010011 +25 011001 +44 101100 overflow

  38. Aritmética em Sinal e Magnitude • O problema encontrado pelos fabricantes de computadores na implementação da ULA (Unidade Lógica e Aritmética) que efetuasse operações aritméticas com valores representados em sinal e magnitude residiu, principalmente, em dois fatores: custo e velocidade. • Custo - necessidade de construção de dois elementos, um para efetuar somas e outro para efetuar subtração (dois componentes eletrônicos). • Velocidade - ocasionada pela perda de tempo gasto na manipulação dos sinais, de modo a determinar o tipo de operação e o sinal do resultado.

  39. Aritmética em Sinal e Magnitude • Outro inconveniente: dupla representação para o zero , o que requer um circuito lógico específico para evitar erros de má interpretação. • Sistemas modernos não empregam aritmética em sinal e magnitude, a qual foi definitivamente substituída pela aritmética em complemento de 2 (no caso de representação em ponto fixo).

  40. Aritmética em Complemento de 2 Algoritmo para operação aritmética de adição: 1. Somar os dois números, bit a bit, inclusive o bit de sinal. 2. Desprezar o último “vai 1” (para fora do número), se houver. 3. Se, simultaneamente, ocorrer “vai 1” para o bit de sinal e “vai 1” para fora do número, ou se ambos não ocorrerem, o resultado está correto. 4. Se ocorrer apenas um dos dois “vai 1” (ou para o bit de sinal ou para fora), o resultado está incorreto. Ocorreu um overflow. • O overflow somente pode ocorrer se ambos os números tiverem o mesmo sinal (seja positivo ou ambos negativos) e, nesse caso, se o sinal do resultado for oposto ao dos números.

  41. Aritmética em Complemento de 2 Algoritmo para operação aritmética de subtração: 1. Complementar a 2 o subtraendo, independentemente se é um valor positivo ou negativo. 2. Somar os números, utilizando o algoritmo da adição já mostrado anteriormente.

  42. Aritmética em Complemento de 2 • Exemplo: Realize as operações aritméticas a seguir (em complemento de 2). Considere a palavra de dados com 6 bits. a) (+13)10 + (+15)10 b) (+23)10 + (+20)10 c) (+15)10 + (-13)10 d) (+20)10 - (+17)10 e) (-24)10 - (-15)10 f) (-24)10 - (+15)10

  43. Aritmética em Complemento de 2 Solução: a) (+13)10 + (+15)10 b) (+23)10 + (+20)10 001111 +13 001101 +15 001111 +28 011100 010100 +23 010111 +20 010100 +43 101011 Resultado incorreto - houve “vai 1” apenas para o bit de sinal. Overflow - faixa de representação para 6 bits (-32 a 31) Resultado correto - não houve “vai 1” nem para o bit de sinal nem para fora do número.

  44. Aritmética em Complemento de 2 Solução: c) (+15)10 + (-13)10 d) (+20)10 - (+17)10 111111 +15 001111 -13 110011 +2 000010 111100 +20 010100 -17 101111 +3 000011 Resultados corretos - houve “vai 1” para o bit de sinal e para fora do número; este é desprezado.

  45. Aritmética em Complemento de 2 Solução: e) (-24)10 - (-15)10 f) (-24)10 - (+15)10 001000 -24 101000 +15 001111 -9 110111 100000 -24 101000 -15 110001 -39 011001 Resultado incorreto - houve “vai 1” apenas para fora do número. Overflow - faixa de representação para 6 bits (-32 a 31) Resultado correto - não houve “vai 1” para o bit de sinal nem para fora do número.

  46. Aritmética em Complemento de 2 Resumindo, é importante lembrar que: • As operações de adição e subtração são normalmente realizadas como adição. • As operações de subtração são realizadas como soma de complemento (minuendo mais o complemento do subtraendo). • Se o resultado encontrado é um valor positivo: • o valor decimal correspondente da magnitude é obtido por pura conversão de base 2 para base 10. • Se o resultado encontrado é um valor negativo: • O valor está representado em complemento de 2.

  47. Aritmética em Complemento de 2 • A aritmética em complemento de 2 requer apenas um componente (somador) para somar dois números e um componente que realize a operação de complementação. • O algoritmo básico refere-se, então, à soma dos números, considerando-se que os números negativos estejam representados em complemento de 2; ele acusa, também, se o resultado ultrapassar a quantidade de bits representáveis na ULA, overflow. Pode-se efetuar a multiplicação através de sucessivas somas e a divisão através de sucessivas subtrações (processo lento!).

  48. Operações aritméticas – Sistema Binário Observação: • A multiplicação em computadores pode ser feita por um artifício: • para multiplicar um número A por n, basta somar A com A, n vezes. • Por exemplo, 4 x 3 = 4 + 4 + 4. • A divisãotambém pode ser feita por subtrações sucessivas! • O que concluímos?Umaoperação aritmética pode ser realizada em computadores apenas através de somas (diretas ou em complemento)!

More Related