Aritmtica Computacional Aula 01 Professor Andr Luis Meneses

  • Slides: 24
Download presentation
Aritmética Computacional – Aula 01 Professor: André Luis Meneses Silva E-mail/msn: andre. Luis. ms@gmail.

Aritmética Computacional – Aula 01 Professor: André Luis Meneses Silva E-mail/msn: andre. Luis. ms@gmail. com Página: www. dcomp. ufs. br/index. php/docentes: Andre

Agenda Números com sinal e sem sinal Adição e Subtração Multiplicação Divisão Representação de

Agenda Números com sinal e sem sinal Adição e Subtração Multiplicação Divisão Representação de ponto flutuante.

Introdução Objetivos desta aula Descrever como os números negativos são representados. Mostrar o que

Introdução Objetivos desta aula Descrever como os números negativos são representados. Mostrar o que acontece se uma operação cria um número muito maior do que poderia ser representado Mostrar como são implementadas as operações aritméticas

Revisão Conversão base qualquer / decimal Nb = an. bn +. . + a

Revisão Conversão base qualquer / decimal Nb = an. bn +. . + a 2. b 2 + a 1. b 1 + a 0. b 0 A melhor forma de fazer a conversão é usando essa expressão. Tomando como exemplo o número 1011012, vamos calcular seu valor representado na base dez. Usando a expressão acima, fazemos: 1011012 = 1 x 25 + 0 x 24 + 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 32 + 0 + 8 + 4 + 0 + 1 = 4510

Revisão Conversão decimal / base qualquer

Revisão Conversão decimal / base qualquer

Revisão Conversões entre as bases 2, 8 e 16 As conversões mais simples são

Revisão Conversões entre as bases 2, 8 e 16 As conversões mais simples são as que envolvem bases que são potências entre si. Vamos exemplificar com a conversão entre a base 2 e a base 8. Como 23 = 8, separando os bits de um número binário em grupos de tres bits 10. 101. 0012 = 28. 58. 18 = 2518 Como 24 = 16, separando os bits de um número binário em grupos de quatro bits 110. 1010. 11012 = 616. A 16. D 16 = 6 AD 16

Revisão Porque os importantes números hexadecimais são tão Simplifica a representação binária. Em um

Revisão Porque os importantes números hexadecimais são tão Simplifica a representação binária. Em um sistema computacional, em geral, é bem comum os endereços, tamanho dos dados e outros elementos, serem múltiplos de 2. Como a base 16 é uma potência de 2, a conversão de binário para hexadecimal é trivial (como visto no exemplo anterior).

Números com Sinal e sem Sinal Existem algumas abordagens para representar números positivos e

Números com Sinal e sem Sinal Existem algumas abordagens para representar números positivos e negativos em um sistema computacional. Veremos 3 diferentes abordagens: Sinal e Magnitude. Complemento de 1. Complemento de 2.

Números com Sinal e sem Sinal e magnitude. O número binário possui um bit

Números com Sinal e sem Sinal e magnitude. O número binário possui um bit específico para tratamento do sinal. Este bit é o primeiro bit. Quando 1 negativo, quando 0 positivo Os demais bits representam o número. Exemplos:

Números com Sinal e sem Sinal e Magnitude Problemas: 0 positivo e 0 negativo.

Números com Sinal e sem Sinal e Magnitude Problemas: 0 positivo e 0 negativo. Implementação em hardware mais complicada. Operações aritméticas se tornam mais complicadas.

Números com Sinal e sem Sinal Complemento de 1. Melhoria da representação de sinal

Números com Sinal e sem Sinal Complemento de 1. Melhoria da representação de sinal e magnitude. Utilizado ainda em alguns sistemas computacionais. Utiliza 1 bit para indicar o sinal Exemplos:

Números com Sinal e sem Sinal Como é calculado um número em complemento de

Números com Sinal e sem Sinal Como é calculado um número em complemento de 1. Para números positivos, procedimento normal. Para números negativos 0000 0111 = 7 1000 0111 = - 120. Para calcular o número negativo basta negarmos a parte sem sinal No exemplo acima 1 000 0111 = 1111 000 = 120, como o sinal do número é 1, então fica -120.

Números com Sinal e sem Sinal Complemento de 1 Ainda possui 0 positivo e

Números com Sinal e sem Sinal Complemento de 1 Ainda possui 0 positivo e 0 negativo Também problemático para algumas operações aritméticas

Números com Sinal e sem Sinal Complemento de 2 Melhoria da representação de complemento

Números com Sinal e sem Sinal Complemento de 2 Melhoria da representação de complemento de 1, mais utilizada nos sistemas computacionais atuais. Utiliza 1 bit para indicar o sinal Exemplos:

Números com Sinal e sem Sinal Como é calculado um número em complemento de

Números com Sinal e sem Sinal Como é calculado um número em complemento de 2. Para números positivos, procedimento normal. Para números negativos 0000 0111 = 7 1000 0111 = - 121. Para calcular o número negativo basta negarmos a parte sem sinal e somarmos com 1. No exemplo acima 1 000 0111 = 1111 000 + 1 = 121, como o sinal do número é 1, então fica -121.

Números com Sinal e sem Sinal Complemento de 2 Só possui 0 (como positivo)

Números com Sinal e sem Sinal Complemento de 2 Só possui 0 (como positivo) Facilita em muito as operações aritméticas (veremos isso nos próximos slides)

Números com Sinal e sem Sinal Grande parte dos processadores dão suporte a instruções

Números com Sinal e sem Sinal Grande parte dos processadores dão suporte a instruções com sinal ou sem sinal. Basicamente, nas instruções sem sinal, o bit de sinal será considerado como bit integrante do número. Todos os números são calculados como se fossem números positivos. Muitas das instruções que vimos para o Mips, possui uma instrução correspondente para fazer a avaliação de números sem levar em conta o sinal. Exemplos sltu, sltiu, addu, subu, etc.

Números com Sinal e sem Sinal Empregando notação complemento de 2 e um destes

Números com Sinal e sem Sinal Empregando notação complemento de 2 e um destes operadores sem sinal, podemos simplificar algumas tarefas, como, por exemplo, teste de limites de um vetor. Em assembly MIPS, ficaria assim: If (0 <= k && k <= tamanho) sltu $t 0, $a 1, $t 2 # $t 0 = 0 se k >= tamanho ou k < 0 beq $t 0, $zero, Indice. Fora. Dos. Limites Porque isso funciona?

Números com Sinal e sem Sinal Se k for um número negativo, pela notação

Números com Sinal e sem Sinal Se k for um número negativo, pela notação complemento de 2 ele será maior que qualquer número positivo (se desconsiderarmos o sinal).

Números com Sinal e sem Sinal Adição e Subtração São as operações aritméticas mais

Números com Sinal e sem Sinal Adição e Subtração São as operações aritméticas mais simples para os processadores. As operações funciona da mesmo forma que aprendemos na escola, só que agora, com números binários. Exemplos:

Números com Sinal e sem Sinal Adição e Subtração São as operações aritméticas mais

Números com Sinal e sem Sinal Adição e Subtração São as operações aritméticas mais simples para os processadores. As operações funciona da mesmo forma que aprendemos na escola, só que agora, com números binários. Exemplos: 1101 0001

Números com Sinal e sem Sinal Adição e Subtração A notação complemento de 2

Números com Sinal e sem Sinal Adição e Subtração A notação complemento de 2 facilita estas tarefas. A seguinte subtração 7 – 6 pode ser feita das seguintes formas: Forma tradicional

Números com Sinal e sem Sinal Adição e Subtração A notação complemento de 2

Números com Sinal e sem Sinal Adição e Subtração A notação complemento de 2 facilita estas tarefas. A seguinte subtração 7 – 6 pode ser feita das seguintes formas: Complemento de 2 (como uma soma).

Números com Sinal e sem Sinal Observem que no último caso tivemos um pequeno

Números com Sinal e sem Sinal Observem que no último caso tivemos um pequeno problema: A soma resultou em um valor que não pode ser representado em 32 bits. Quando isso acontece, dizemos que ocorreu overflow. Para os casos, como do exemplo acima, o overflow não teria maiores problemas, visto que podemos descartar o dígito 33 sem quaisquer problemas.