aula3

99
Aula 3: Aritmética, Representação de dados Circuitos Digitais Rodrigo Hausen CMCC UF ABC 28 e 30 de janeiro de 2013 http://compscinet.org/circuitos Rodrigo Hau sen (CMCC – UFABC)  Aula 3: Aritmética, Represe ntação de dad os 28 e 30 de janeiro de 2013 1 / 40

description

aula

Transcript of aula3

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 1/99

Aula 3: Aritmética, Representação de dadosCircuitos Digitais

Rodrigo Hausen

CMCC – UFABC

28 e 30 de janeiro de 2013

http://compscinet.org/circuitos

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados

28 e 30 de janeiro de 2013 1 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 2/99

Multiplicação binária

Algoritmo da multiplicação: mesma idéia usada na base decimal.11011

x 101

11011

00000

+ 1101110000111

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados

28 e 30 de janeiro de 2013 2 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 3/99

Multiplicação binária

Algoritmo da multiplicação: mesma idéia usada na base decimal.11011

x 101

11011

00000

+ 1101110000111

Note que a tabuada da multiplicação na base 2 é muito mais fácil.

×   0 1

0 0 01 0 1

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados

28 e 30 de janeiro de 2013 2 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 4/99

Multiplicação binária

Algoritmo da multiplicação: mesma idéia usada na base decimal.11011

x 101

11011

00000

+ 1101110000111

Note que a tabuada da multiplicação na base 2 é muito mais fácil.

×   0 1

0 0 01 0 1

Se   A  tem   n  algarismos e   B   tem   m  algarismos, então o produto   A × B 

terá, no máximo,

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 2 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 5/99

Multiplicação binária

Algoritmo da multiplicação: mesma idéia usada na base decimal.11011

x 101

11011

00000

+ 1101110000111

Note que a tabuada da multiplicação na base 2 é muito mais fácil.

×   0 1

0 0 01 0 1

Se   A  tem   n  algarismos e   B   tem   m  algarismos, então o produto   A × B 

terá, no máximo,   n +  m  algarismos.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 2 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 6/99

Multiplicação binária

Para casa: escrever o algoritmo de multiplicação binária para númerosnaturais.

Note que não é necessário armazenar todas as parcelas da soma ao

mesmo tempo.11011

x 101

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 3 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 7/99

Multiplicação binária

Para casa: escrever o algoritmo de multiplicação binária para númerosnaturais.

Note que não é necessário armazenar todas as parcelas da soma ao

mesmo tempo.11011

x 101

11011

+ 000000   <- desloca 1

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 3 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 8/99

Multiplicação binária

Para casa: escrever o algoritmo de multiplicação binária para númerosnaturais.

Note que não é necessário armazenar todas as parcelas da soma ao

mesmo tempo.11011

x 101

011011

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 3 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 9/99

Multiplicação binária

Para casa: escrever o algoritmo de multiplicação binária para númerosnaturais.

Note que não é necessário armazenar todas as parcelas da soma ao

mesmo tempo.11011

x 101

011011

+ 1101100<- desloca 2

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 3 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 10/99

Multiplicação binária

Para casa: escrever o algoritmo de multiplicação binária para númerosnaturais.

Note que não é necessário armazenar todas as parcelas da soma ao

mesmo tempo.11011

x 101

10000111

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 3 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 11/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 4 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 12/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

10000111 | 101

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 4 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 13/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

10000111 | 101

- 101

-1

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 5 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 14/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

10000111 | 101

- 101 0

-1

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 6 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 15/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

10000111 | 101

- 101 0

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 7 / 40

á

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 16/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

10000111 | 101

- 101 0

11

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 8 / 40

ã á

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 17/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

10000111 | 101

- 101 01

11

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 9 / 40

D ã á

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 18/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

110111 | 101

01

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 10 / 40

D ã á

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 19/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

110111 | 101

- 101 01

1

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 11 / 40

D ã á

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 20/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

110111 | 101

- 101 011

1

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 12 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 21/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

1111 | 101

- 101 011

-10

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 13 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 22/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

1111 | 101

- 101 0110

-10

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 14 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 23/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

1111 | 101

- 101 01101

10

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 15 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 24/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos sópodem ser 1 ou 0.

101 | 101

- 101 011011

0

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 16 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 25/99

Divisão binária

Algoritmo da divisão longa: de novo, emprestamos a idéia da basedecimal.

Novamente, a tabuada binária facilita as contas. Os algarismos só

podem ser 1 ou 0.

101 | 101

- 101 011011   = quociente0   = resto

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 17 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 26/99

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária para

números naturais.

Calcular   A ÷ B , onde   A =  a n−1 . . . a 0,   B  =  b m−1 . . . b 0  e   m ≤ n

Note que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , para

i  =  n − m . . . 0

10000111 | 101

- 10100000

-100111

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 18 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 27/99

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária para

números naturais.

Calcular   A ÷ B , onde   A =  a n−1 . . . a 0,   B  =  b m−1 . . . b 0  e   m ≤ n

Note que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , para

i  =  n − m . . . 0

10000111 | 101

- 10100000   0

-100111

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 19 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 28/99

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária para

números naturais.

Calcular   A ÷ B , onde   A =  a n−1 . . . a 0,   B  =  b m−1 . . . b 0  e   m ≤ n

Note que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , para

i  =  n − m . . . 0

10000111 | 101

- 1010000   0

110111

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 20 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 29/99

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária para

números naturais.

Calcular   A ÷ B , onde   A =  a n−1 . . . a 0,   B  =  b m−1 . . . b 0  e   m ≤ n

Note que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , para

i  =  n − m . . . 0

10000111 | 101

- 1010000   01

110111

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 21 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 30/99

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária para

números naturais.

Calcular   A ÷ B , onde   A =  a n−1 . . . a 0,   B  =  b m−1 . . . b 0  e   m ≤ n

Note que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , para

i  =  n − m . . . 0

110111 | 101

- 101000   01

01111

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 22 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 31/99

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária para

números naturais.

Calcular   A ÷ B , onde   A =  a n−1 . . . a 0,   B  =  b m−1 . . . b 0  e   m ≤ n

Note que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , para

i  =  n − m . . . 0

110111 | 101

- 101000   011

01111

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 23 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 32/99

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária para

números naturais.

Calcular   A ÷ B , onde   A =  a n−1 . . . a 0,   B  =  b m−1 . . . b 0  e   m ≤ n

Note que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , para

i  =  n − m . . . 0

01111 | 101

- 10100   0110. . .-. . .

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 24 / 40

Divisão binária

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 33/99

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária para

números naturais.

Calcular   A ÷ B , onde   A =  a n−1 . . . a 0,   B  =  b m−1 . . . b 0  e   m ≤ n

Note que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , para

i  =  n − m . . . 0

01111 | 101

- 10100   0110. . .-. . .

Se a diferença é positiva, ela passa a ser o próximo dividendo.

Pare quando   i  = 0.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 25 / 40

Divisão binária: divisão não-inteira

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 34/99

Note que se   A é múltiplo de   B , o resultado da última subtração será 0

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 26 / 40

Divisão binária: divisão não-inteira

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 35/99

Note que se   A é múltiplo de   B , o resultado da última subtração será 0

E se   A  não for múltiplo de   B ?

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 26 / 40

Divisão binária: divisão não-inteira

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 36/99

Note que se   A é múltiplo de   B , o resultado da última subtração será 0

E se   A  não for múltiplo de   B ?

Podemos continuar a divisão, adicionando a vírgula (ponto, eminglês).

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 26 / 40

Divisão binária: divisão não-inteira

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 37/99

Note que se   A é múltiplo de   B , o resultado da última subtração será 0

E se   A  não for múltiplo de   B ?

Podemos continuar a divisão, adicionando a vírgula (ponto, eminglês).

para cada algarismo adicionado depois da vírgula, multiplique odividendo por 2 (ou seja, adicione um 0 à direita)

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 26 / 40

Divisão binária: divisão não-inteira

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 38/99

Note que se   A é múltiplo de   B , o resultado da última subtração será 0

E se   A  não for múltiplo de   B ?

Podemos continuar a divisão, adicionando a vírgula (ponto, eminglês).

para cada algarismo adicionado depois da vírgula, multiplique odividendo por 2 (ou seja, adicione um 0 à direita)

Pare quando o resultado tiver   k  algarismos depois da vírgula.

Ex.: 110 ÷ 101

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 26 / 40

Divisão binária: divisão não-inteira

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 39/99

Note que se   A é múltiplo de   B , o resultado da última subtração será 0

E se   A  não for múltiplo de   B ?

Podemos continuar a divisão, adicionando a vírgula (ponto, eminglês).

para cada algarismo adicionado depois da vírgula, multiplique odividendo por 2 (ou seja, adicione um 0 à direita)

Pare quando o resultado tiver   k  algarismos depois da vírgula.

Ex.: 110 ÷ 101

Para casa: escrever esse algoritmo.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 26 / 40

Números racionais

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 40/99

O que acontece com os algoritmos da soma, subtração, multiplicação

e divisão quando os números sendo operados não são inteiros?

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 27 / 40

Números racionais

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 41/99

O que acontece com os algoritmos da soma, subtração, multiplicação

e divisão quando os números sendo operados não são inteiros?Sem perder a generalidade, suporemos que   A  e   B  possuem   k 

algarismos depois da vírgula. (Se eles não tiverem a mesmaquantidade de algarismos após a vírgula?)

A =  a n−1a n−2 . . . a 1a 0   ,   a −1 . . . a 

−k 

B  =  b m−1a m−2 . . . b 0   ,   b −1 . . . b 

−k 

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 27 / 40

Números racionais

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 42/99

O que acontece com os algoritmos da soma, subtração, multiplicação

e divisão quando os números sendo operados não são inteiros?Sem perder a generalidade, suporemos que   A  e   B  possuem   k 

algarismos depois da vírgula. (Se eles não tiverem a mesmaquantidade de algarismos após a vírgula?)

A =  a n−1a n−2 . . . a 1a 0   ,   a −1 . . . a 

−k 

B  =  b m−1a m−2 . . . b 0   ,   b −1 . . . b 

−k 

Caso mais fácil: divisão. Note que:

A

B   =

  A × 2k 

B  × 2k   =

  a n−1a n−2 . . . a 1a 0a −1 . . . a 

−k 

b m−1a m−2 . . . b 0b −1 . . . b 

−k 

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 27 / 40

Números racionais

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 43/99

O que acontece com os algoritmos da soma, subtração, multiplicação

e divisão quando os números sendo operados não são inteiros?Sem perder a generalidade, suporemos que   A  e   B  possuem   k 

algarismos depois da vírgula. (Se eles não tiverem a mesmaquantidade de algarismos após a vírgula?)

A =  a n−1a n−2 . . . a 1a 0   ,   a −1 . . . a 

−k 

B  =  b m−1a m−2 . . . b 0   ,   b −1 . . . b 

−k 

Caso mais fácil: divisão. Note que:

A

B   =

  A × 2k 

B  × 2k   =

  a n−1a n−2 . . . a 1a 0a −1 . . . a 

−k 

b m−1a m−2 . . . b 0b −1 . . . b 

−k 

Simplesmente ignore a vírgula!

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 27 / 40

Números racionais

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 44/99

Para a soma e a subtração: como os algoritmos são “copiados” daversão para números na base 10, a solução é simples: ignore,inicialmente a vírgula. Após a soma, recoloque a vírgula no seu lugar(conte   k  algarismos à direita).

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 28 / 40

Números racionais

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 45/99

Para a soma e a subtração: como os algoritmos são “copiados” daversão para números na base 10, a solução é simples: ignore,inicialmente a vírgula. Após a soma, recoloque a vírgula no seu lugar(conte   k  algarismos à direita).

Para a multiplicação: de novo, a inspiração vem da base decimal.

Ignore, inicialmente a vírgula e, após a multiplicação, recoloque avírgula no seu lugar (conte  2k  algarismos à direita).

Para casa:

(1)  escreva as versões dos algoritmos da soma, subtração, multiplicação e

divisão para números racionais sem sinal (positivos) com   k  algarismosapós a vírgula;

(2)  altere os algoritmos para permitir números racionais com sinal.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 28 / 40

Representação numérica

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 46/99

Representação de números no papel: usamos tantos dígitos forem

necessários.Limitado apenas pela quantidade de papel, tempo disponível paraescrever os dígitos, paciência. . .

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 29 / 40

Representação numérica

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 47/99

Representação de números no papel: usamos tantos dígitos forem

necessários.Limitado apenas pela quantidade de papel, tempo disponível paraescrever os dígitos, paciência. . .

Número   π:

3.14159265358979323846264338327950288419716939937510582097

4944592307816406286208998628034825342117067982148086513282

3066470938446095505822317253594081284811174502841027019385

2110555964462294895493038196442881097566593344612847564823

37867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153

6436789259036001133053054882046652138414695194151160943305

7270365759591953092186117381932611793105118548074462379...

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 29 / 40

Representação numérica num computadordigital

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 48/99

digital

Recordando: em um computador digital qualquer informação, emúltima instância, é representada por um número.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 30 / 40

Representação numérica num computadordigital

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 49/99

digital

Recordando: em um computador digital qualquer informação, emúltima instância, é representada por um número.

Atualmente, os números são representados internamente em binário(por vários motivos, entre eles facilidade de fazer contas na base 2).

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 30 / 40

Representação numérica num computadordigital

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 50/99

digital

Recordando: em um computador digital qualquer informação, emúltima instância, é representada por um número.

Atualmente, os números são representados internamente em binário(por vários motivos, entre eles facilidade de fazer contas na base 2).

Um computador digital possui espaço finito para guardar informações.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 30 / 40

Representação numérica num computadordigital

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 51/99

digital

Recordando: em um computador digital qualquer informação, emúltima instância, é representada por um número.

Atualmente, os números são representados internamente em binário(por vários motivos, entre eles facilidade de fazer contas na base 2).

Um computador digital possui espaço finito para guardar informações.

Por questões de eficiência, geralmente o processamento de dados (ouseja, números) não é feito algarismo binário por algarismo binário, e

sim  por grupos de algarismos binários  de uma só vez.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 30 / 40

Representação numérica num computadordigital

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 52/99

digital

Recordando: em um computador digital qualquer informação, emúltima instância, é representada por um número.

Atualmente, os números são representados internamente em binário(por vários motivos, entre eles facilidade de fazer contas na base 2).

Um computador digital possui espaço finito para guardar informações.

Por questões de eficiência, geralmente o processamento de dados (ouseja, números) não é feito algarismo binário por algarismo binário, e

sim  por grupos de algarismos binários  de uma só vez.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 30 / 40

Bits e palavras

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 53/99

Abreviação: algarismo binário =  bit  (do inglês  binary digit)

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 31 / 40

Bits e palavras

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 54/99

Abreviação: algarismo binário =  bit  (do inglês  binary digit)

A unidade natural de processamento de um determinado sistema échamada  palavra de dado; é, basicamente, uma sequência de bitscom tamanho fixo que é processada em conjunto.

MSB LSB  

↓ ↓

   

tamanho  w =11 bits

MSB = Most Significant Bit = bit mais significativo,

LSB = Least Significant Bit = bit menos significativo

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 31 / 40

Bits e palavras

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 55/99

Abreviação: algarismo binário =  bit  (do inglês  binary digit)

A unidade natural de processamento de um determinado sistema échamada  palavra de dado; é, basicamente, uma sequência de bitscom tamanho fixo que é processada em conjunto.

MSB LSB  

↓ ↓

   

tamanho  w =11 bits

MSB = Most Significant Bit = bit mais significativo,

LSB = Least Significant Bit = bit menos significativo

Tamanhos de palavras comuns são: 4, 8, 16, 32 e 64 bits.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 31 / 40

Bits e palavras

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 56/99

Abreviação: algarismo binário =  bit  (do inglês  binary digit)

A unidade natural de processamento de um determinado sistema échamada  palavra de dado; é, basicamente, uma sequência de bitscom tamanho fixo que é processada em conjunto.

MSB LSB  

↓ ↓

   

tamanho  w =11 bits

MSB = Most Significant Bit = bit mais significativo,

LSB = Least Significant Bit = bit menos significativo

Tamanhos de palavras comuns são: 4, 8, 16, 32 e 64 bits.Nomes comuns para palavras: 8 bits =  byte  (binary term) ou  octeto 4 bits =  nibble

(curiosidade: nibble, em inglês, significa “mordidinha” = “small bite”)

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 31 / 40

Representando números em palavras binárias

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 57/99

Primeiro caso: número inteiro sem sinal (≥ 0).

Como representar um número inteiro   A = (a n−1a n−2 . . . a 0)2  numa palavrade comprimento   w ?

. . .   

w   bits

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 32 / 40

Representando números em palavras binárias

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 58/99

Primeiro caso: número inteiro sem sinal (≥ 0).

Como representar um número inteiro   A = (a n−1a n−2 . . . a 0)2  numa palavrade comprimento   w ?

0 0   a n−1   a n−2   . . .   a 2   a 1   a 0   

w   bits

Qual é o maior inteiro sem sinal que podemos representar?

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 32 / 40

Representando números em palavras binárias

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 59/99

Primeiro caso: número inteiro sem sinal (≥ 0).

Como representar um número inteiro   A = (a n−1a n−2 . . . a 0)2  numa palavrade comprimento   w ?

0 0   a n−1   a n−2   . . .   a 2   a 1   a 0   

w   bits

Qual é o maior inteiro sem sinal que podemos representar?

Exemplo: quais inteiros sem sinal podemos representar com 3 bits?

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 32 / 40

Representando números em palavras binárias

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 60/99

Primeiro caso: número inteiro sem sinal (≥ 0).

Como representar um número inteiro   A = (a n−1a n−2 . . . a 0)2  numa palavrade comprimento   w ?

0 0   a n−1   a n−2   . . .   a 2   a 1   a 0   

w   bits

Qual é o maior inteiro sem sinal que podemos representar?

Exemplo: quais inteiros sem sinal podemos representar com 3 bits?

000 001 010 011 100 101 110 1110 1 2 3 4 5 6 7

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 32 / 40

Representando números em palavras binárias

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 61/99

Primeiro caso: número inteiro sem sinal (≥ 0).

Como representar um número inteiro   A = (a n−1a n−2 . . . a 0)2  numa palavrade comprimento   w ?

0 0   a n−1   a n−2   . . .   a 2   a 1   a 0   

w   bits

Qual é o maior inteiro sem sinal que podemos representar?

Exemplo: quais inteiros sem sinal podemos representar com 3 bits?

000 001 010 011 100 101 110 1110 1 2 3 4 5 6 7

De 0 até 7 = 23 − 1.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 32 / 40

Representando números: inteiros sem sinal

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 62/99

Inteiros sem sinal em palavras binárias com   w   bits.

Palavra Decimal00 . . . 000 = 000 . . . 001 = 100 . . . 010 = 2

..

.11 . . . 110 = ?11 . . . 111 = ? = maior inteiro sem sinal com   w   bits

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 33 / 40

Representando números: inteiros sem sinal

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 63/99

Inteiros sem sinal em palavras binárias com   w   bits.

Palavra Decimal00 . . . 000 = 000 . . . 001 = 100 . . . 010 = 2

...11 . . . 110 = ?11 . . . 111 = ? = maior inteiro sem sinal com   w   bits

O próximo número na sequência, que não cabe em  w 

 bits, é

(100 . . . 000   

w   bits

)2 = 0 · 20 + 0 · 21 + . . . + 0 · 2w −1 + 1 · 2w  = 2w 

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 33 / 40

Representando números: inteiros sem sinal

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 64/99

Inteiros sem sinal em palavras binárias com   w   bits.

Palavra Decimal00 . . . 000 = 000 . . . 001 = 100 . . . 010 = 2

...11 . . . 110 = ?11 . . . 111 = ? = maior inteiro sem sinal com   w   bits

100 . . . 000 = 2w 

O próximo número na sequência, que não cabe em  w 

 bits, é

(100 . . . 000   

w   bits

)2 = 0 · 20 + 0 · 21 + . . . + 0 · 2w −1 + 1 · 2w  = 2w 

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 33 / 40

Representando números: inteiros sem sinal

I i i l l bi á i bi

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 65/99

Inteiros sem sinal em palavras binárias com   w   bits.

Palavra Decimal00 . . . 000 = 000 . . . 001 = 100 . . . 010 = 2

...11 . . . 110 = 2w  − 211 . . . 111 = 2w  − 1 = maior inteiro sem sinal com   w   bits

100 . . . 000 = 2w 

O próximo número na sequência, que não cabe em  w 

 bits, é

(100 . . . 000   

w   bits

)2 = 0 · 20 + 0 · 21 + . . . + 0 · 2w −1 + 1 · 2w  = 2w 

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 33 / 40

Representando números: inteiros com sinal

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 66/99

Precisamos reservar espaço na palavra para representar, além dos

algarismos do número, alguma informação sobre o sinal.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 34 / 40

Representando números: inteiros com sinal

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 67/99

Precisamos reservar espaço na palavra para representar, além dos

algarismos do número, alguma informação sobre o sinal.Como só existem duas possibilidades para o sinal, podemos usar umdos bits para representar o sinal.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 34 / 40

Representando números: inteiros com sinal

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 68/99

Precisamos reservar espaço na palavra para representar, além dos

algarismos do número, alguma informação sobre o sinal.Como só existem duas possibilidades para o sinal, podemos usar umdos bits para representar o sinal. Sugestão:

sinal  +: bit de sinal 0 sinal  −: bit de sinal 1

sinal    

magnitude    

a w −2   a w −1   . . .   a 2   a 1   a 0   

w   bits

Esta representação é conhecida como  sinal-magnitude.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 34 / 40

Representando números: inteiros com sinal

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 69/99

Precisamos reservar espaço na palavra para representar, além dos

algarismos do número, alguma informação sobre o sinal.Como só existem duas possibilidades para o sinal, podemos usar umdos bits para representar o sinal. Sugestão:

sinal  +: bit de sinal 0 sinal  −: bit de sinal 1

sinal    

magnitude    

a w −2   a w −1   . . .   a 2   a 1   a 0   

w   bits

Esta representação é conhecida como  sinal-magnitude.

Ex.:   inteiros representados em sinal-magnitude com 3 bits

000 001 010 011 100 101 110 111

+0 +1 +2 +3 -0 -1 -2 -3

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 34 / 40

Representação sinal-magnitude

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 70/99

Menor número: 1 1 1 . . . 1 1 =

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 35 / 40

Representação sinal-magnitude

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 71/99

Menor número: 1 1 1 . . . 1 1 =  −(11 . . . 11   

w −1 uns

)2  =

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 35 / 40

Representação sinal-magnitude

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 72/99

Menor número: 1 1 1 . . . 1 1 =  −(11 . . . 11   

w −1 uns

)2  =  −(1 00 . . . 00   

w −1 zeros

−1)2

=  −(2w −1

− 1) = −2w −1

+ 1

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 35 / 40

Representação sinal-magnitude

( ) ( )

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 73/99

Menor número: 1 1 1 . . . 1 1 =  −(11 . . . 11   

w −1 uns

)2  =  −(1 00 . . . 00   

w −1 zeros

−1)2

=  −(2w −1

− 1) = −2w −1

+ 1

Maior número: 0 1 1 . . . 1 1 = +2w −1 − 1

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 35 / 40

Representação sinal-magnitude

M ú 1 1 1 1 1 (11 11) (1 00 00 1)

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 74/99

Menor número: 1 1 1 . . . 1 1 =  −(11 . . . 11   

w −1 uns

)2  =  −(1 00 . . . 00   

w −1 zeros

−1)2

=  −(2w −1

− 1) = −2w −1

+ 1

Maior número: 0 1 1 . . . 1 1 = +2w −1 − 1

Vantagens

simples de entender

simples de implementar

Desvantagens

zero tem duas representações: 0 0 . . . 0 =  +0 e 1 0 . . . 0 =  −0complica a aritmética: é necessário tratar o sinal separadamente nahora de fazer as contas de soma e subtração.

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 35 / 40

Representação em complemento de   2

vimos que, uma maneira de fazer subtrações na forma   A − B  era

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 75/99

q , çtomar o complemento a dois   B  + 1 e fazer a soma   A + (B  + 1)

note que se  −B  é um número negativo, então  −B  = 0 − B 

suponha que estamos representando todos os números positivos empalavras binárias de tamanho   w  na forma:

0   a w −2   a w −3 . . .   a 1   a 0

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 36 / 40

Representação em complemento de   2

vimos que, uma maneira de fazer subtrações na forma   A − B  era

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 76/99

q çtomar o complemento a dois   B  + 1 e fazer a soma   A + (B  + 1)

note que se  −B  é um número negativo, então  −B  = 0 − B 

suponha que estamos representando todos os números positivos empalavras binárias de tamanho   w  na forma:

0   a w −2   a w −3 . . .   a 1   a 0

Ex.:   Calcule 0 − (11)10  usando complemento de 2 em palavras com 5bits, sendo que o primeiro bit 0 representa sinal positivo.

0 = 0 0 0 0 0   

00002=0

1110  = 0 1 0 1 1   

10112=1110

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 36 / 40

Representação em complemento de   2

vimos que, uma maneira de fazer subtrações na forma   A − B  era

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 77/99

çtomar o complemento a dois   B  + 1 e fazer a soma   A + (B  + 1)

note que se  −B  é um número negativo, então  −B  = 0 − B 

suponha que estamos representando todos os números positivos empalavras binárias de tamanho   w  na forma:

0   a w −2   a w −3 . . .   a 1   a 0

Ex.:   Calcule 0 − (11)10  usando complemento de 2 em palavras com 5bits, sendo que o primeiro bit 0 representa sinal positivo.

0 = 0 0 0 0 0   

00002=0

1110  = 0 1 0 1 1   

10112=1110

Complemento a dois de 01011 = 10100 + 1 = 10101

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 36 / 40

Representação em complemento de   2

vimos que, uma maneira de fazer subtrações na forma   A − B  era

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 78/99

tomar o complemento a dois   B  + 1 e fazer a soma   A + (B  + 1)

note que se  −B  é um número negativo, então  −B  = 0 − B 

suponha que estamos representando todos os números positivos empalavras binárias de tamanho   w  na forma:

0   a w −2   a w −3 . . .   a 1   a 0

Ex.:   Calcule 0 − (11)10  usando complemento de 2 em palavras com 5bits, sendo que o primeiro bit 0 representa sinal positivo.

0 = 0 0 0 0 0   

00002=0

1110  = 0 1 0 1 1   

10112=1110

Complemento a dois de 01011 = 10100 + 1 = 10101

−10112 = 0 − 10112 = 0 + 101012 =   1 0 1 0 1 , bit de sinal 1

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 36 / 40

Representação em complemento de   2

Representação de inteiros com sinal em complemento de 2

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 79/99

Números positivos

0   a w −2   a w −3   . . .   a 1   a 0   

w −1 bits

= +(a w −2a w −3 . . . a 1a 0)2

Números negativos

1   a w −2   a w −3   . . .   a 1   a 0   

w −1 bits

= −(a w −2a w −3 . . . a 1a 0 + 1)2

Ex.:   a que número corresponde a palavra 1 0 1 1 1 0 0 ?

Rodrigo Hausen (CMCC – UFABC)   Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 37 / 40

Representação em complemento de   2

Representação de inteiros com sinal em complemento de 2

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 80/99

Números positivos

0   a w −2   a w −3   . . .   a 1   a 0   

w −1 bits

= +(a w −2a w −3 . . . a 1a 0)2

Números negativos

1   a w −2   a w −3   . . .   a 1   a 0   

w −1 bits

= −(a w −2a w −3 . . . a 1a 0 + 1)2

Ex.:   a que número corresponde a palavra 1 0 1 1 1 0 0 ?Bit de sinal 1 = número negativo.

Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 37 / 40

Representação em complemento de   2

Representação de inteiros com sinal em complemento de 2

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 81/99

Números positivos

0   a w −2   a w −3   . . .   a 1   a 0   

w −1 bits

= +(a w −2a w −3 . . . a 1a 0)2

Números negativos

1   a w −2   a w −3   . . .   a 1   a 0   

w −1 bits

= −(a w −2a w −3 . . . a 1a 0 + 1)2

Ex.:   a que número corresponde a palavra 1 0 1 1 1 0 0 ?Bit de sinal 1 = número negativo.011100  + 1 =  100011  + 1 =  100100  = 3610

Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 37 / 40

Representação em complemento de   2

Representação de inteiros com sinal em complemento de 2

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 82/99

Números positivos

0   a w −2   a w −3   . . .   a 1   a 0   

w −1 bits

= +(a w −2a w −3 . . . a 1a 0)2

Números negativos

1   a w −2   a w −3   . . .   a 1   a 0   

w −1 bits

= −(a w −2a w −3 . . . a 1a 0 + 1)2

Ex.:   a que número corresponde a palavra 1 0 1 1 1 0 0 ?Bit de sinal 1 = número negativo.011100  + 1 =  100011  + 1 =  100100  = 3610

1 0 1 1 1 0 0 =  −3610

Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 37 / 40

Representação em complemento de   2

Inteiros representados em complemento de dois em palavras de 3 bits:

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 83/99

011 =  +310

010 =  +210

001 =  +110

000 = 010

Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 38 / 40

Representação em complemento de   2

Inteiros representados em complemento de dois em palavras de 3 bits:

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 84/99

011 =  +310

010 =  +210

001 =  +110

000 = 010

111 =   − (11 + 1)2 = −(00 + 1)2

Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 38 / 40

Representação em complemento de   2

Inteiros representados em complemento de dois em palavras de 3 bits:

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 85/99

011 =  +310

010 =  +210

001 =  +110

000 = 010

111 =   − 110   =   − (11 + 1)2 = −(00 + 1)2

Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 38 / 40

Representação em complemento de   2

Inteiros representados em complemento de dois em palavras de 3 bits:3

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 86/99

011 =  +310

010 =  +210

001 =  +110

000 = 010

111 =   − 110   =   − (11 + 1)2 = −(00 + 1)2

110 =   − (10 + 1)2 = −(01 + 1)2

Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 38 / 40

Representação em complemento de   2

Inteiros representados em complemento de dois em palavras de 3 bits:011 3

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 87/99

011 =  +310

010 =  +210

001 =  +110

000 = 010

111 =   − 110   =   − (11 + 1)2 = −(00 + 1)2

110 =   − 210   =   − (10 + 1)2 = −(01 + 1)2

Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 38 / 40

Representação em complemento de   2

Inteiros representados em complemento de dois em palavras de 3 bits:011 +3

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 88/99

011 =  +310

010 =  +210

001 =  +110

000 = 010

111 =   − 110   =   − (11 + 1)2 = −(00 + 1)2

110 =   − 210   =   − (10 + 1)2 = −(01 + 1)2

101 =  −310

Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 38 / 40

Representação em complemento de   2

Inteiros representados em complemento de dois em palavras de 3 bits:011 +3

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 89/99

011 =  +310

010 =  +210

001 =  +110

000 = 010

111 =   − 110   =   − (11 + 1)2 = −(00 + 1)2

110 =   − 210   =   − (10 + 1)2 = −(01 + 1)2

101 =  −310

100 =  −410

Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 38 / 40

Representação em complemento de   2

Inteiros representados em complemento de dois em palavras de 3 bits:011 +3

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 90/99

011 =  +310

010 =  +210

001 =  +110

000 = 010

111 =   − 110   =   − (11 + 1)2 = −(00 + 1)2

110 =   − 210   =   − (10 + 1)2 = −(01 + 1)2

101 =  −310

100 =  −410

note que o intervalo de representação não é simétrico

como só há uma representação para 0, é possível representar um

inteiro negativo a maissomas/subtrações com esta representação são simples!1 + (−3)  = 0 0 1 + 1 0 1 = 1 1 0 =  −2

Rodrigo Hausen (CMCC UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 38 / 40

Representação em complemento de   2

Maior número: 0 1 1 . . . 1 1 =  +2w −1 − 1 (como sinal-magnitude)

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 91/99

Rodrigo Hausen (CMCC UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 39 / 40

Representação em complemento de   2

Maior número: 0 1 1 . . . 1 1 =  +2w −1 − 1 (como sinal-magnitude)

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 92/99

Menor número: 1 0 0 . . . 0 0 =  −(00 . . . 00 + 1)2 = −(11 . . . 11 + 1)

Rodrigo Hausen (CMCC UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 39 / 40

Representação em complemento de   2

Maior número: 0 1 1 . . . 1 1 =  +2w −1 − 1 (como sinal-magnitude)

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 93/99

Menor número: 1 0 0 . . . 0 0 =  −(00 . . . 00 + 1)2 = −(11 . . . 11 + 1)= −(1 00 . . . 00

   

w −1 zeros

−1 + 1)

Rodrigo Hausen (CMCC UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 39 / 40

Representação em complemento de   2

Maior número: 0 1 1 . . . 1 1 =  +2w −1 − 1 (como sinal-magnitude)

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 94/99

Menor número: 1 0 0 . . . 0 0 =  −(00 . . . 00 + 1)2 = −(11 . . . 11 + 1)= −(1 00 . . . 00

   

w −1 zeros

−1 + 1) = −2w −1

(uma unidade menor que sinal-magnitude)

Rodrigo Hausen (CMCC UFABC) Aula 3: Aritmética Representação de dados28 e 30 de janeiro de 2013 39 / 40

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 95/99

Para casa

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 96/99

Pensar: como converter palavras de dados de tamanhos diferentes? Ex.: de 8

para 16 bits?

Rodrigo Hausen (CMCC UFABC) Aula 3 Aritmética Representação de dados28 e 30 de janeiro de 2013 40 / 40

Para casa

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 97/99

Pensar: como converter palavras de dados de tamanhos diferentes? Ex.: de 8

para 16 bits? O que acontece se o resultado da soma/subtração/multiplicação de

dois inteiros representados em palavras de   w  bits não couber em   w 

bits? (Overflow)

Rodrigo Hausen (CMCC UFABC) Aula 3 Aritmética Representação de dados28 e 30 de janeiro de 2013 40 / 40

Para casa

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 98/99

Pensar: como converter palavras de dados de tamanhos diferentes? Ex.: de 8

para 16 bits? O que acontece se o resultado da soma/subtração/multiplicação de

dois inteiros representados em palavras de   w  bits não couber em   w 

bits? (Overflow) Comportamentos distintos para representação sem sinal,

sinal-magnitude e complemento de dois

Rodrigo Hausen (CMCC UFABC) Aula 3 Aritmética Representação de dados28 e 30 de janeiro de 2013 40 / 40

Para casa

7/17/2019 aula3

http://slidepdf.com/reader/full/aula3-5690ae8b533aa 99/99

Pensar: como converter palavras de dados de tamanhos diferentes? Ex.: de 8

para 16 bits? O que acontece se o resultado da soma/subtração/multiplicação de

dois inteiros representados em palavras de   w  bits não couber em   w 

bits? (Overflow) Comportamentos distintos para representação sem sinal,

sinal-magnitude e complemento de dois

Seções do livro: 2-4, 2-5, 2-6 e 2-7

R H (CMCC UFABC) A 3 A é R ã 28 30 2013 40 / 40