99
Aula 3: Aritmética, Representação de dados Circuitos 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

Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Embed Size (px)

Citation preview

Page 1: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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 dados28 e 30 de janeiro de 2013 1 / 40

Page 2: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Multiplicação binária

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

x 10111011

00000+ 11011

10000111

Note que a tabuada da multiplicação na base 2 é muito mais fácil.× 0 10 0 01 0 1

Se A tem n algarismos e B tem m algarismos, então o produto A× Bterá, 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

Page 3: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Multiplicação binária

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

x 10111011

00000+ 11011

10000111

Note que a tabuada da multiplicação na base 2 é muito mais fácil.× 0 10 0 01 0 1

Se A tem n algarismos e B tem m algarismos, então o produto A× Bterá, 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

Page 4: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Multiplicação binária

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

x 10111011

00000+ 11011

10000111

Note que a tabuada da multiplicação na base 2 é muito mais fácil.× 0 10 0 01 0 1

Se A tem n algarismos e B tem m algarismos, então o produto A× Bterá, 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

Page 5: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Multiplicação binária

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

x 10111011

00000+ 11011

10000111

Note que a tabuada da multiplicação na base 2 é muito mais fácil.× 0 10 0 01 0 1

Se A tem n algarismos e B tem m algarismos, então o produto A× Bterá, 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

Page 6: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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 aomesmo tempo.

11011x 101

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

Page 7: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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 aomesmo tempo.

11011x 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

Page 8: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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 aomesmo tempo.

11011x 101

011011

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

Page 9: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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 aomesmo tempo.

11011x 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

Page 10: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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 aomesmo tempo.

11011x 101

10000111

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

Page 11: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 12: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 13: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 14: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 15: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 16: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 17: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 18: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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 | 10101

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

Page 19: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 20: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 21: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 22: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 23: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 24: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Page 25: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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 = quociente

0 = resto

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

Page 26: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária paranúmeros naturais.

Calcular A÷ B, onde A = an−1 . . . a0, B = bm−1 . . . b0 e m ≤ nNote que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , parai = 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

Page 27: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária paranúmeros naturais.

Calcular A÷ B, onde A = an−1 . . . a0, B = bm−1 . . . b0 e m ≤ nNote que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , parai = 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

Page 28: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária paranúmeros naturais.

Calcular A÷ B, onde A = an−1 . . . a0, B = bm−1 . . . b0 e m ≤ nNote que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , parai = 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

Page 29: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária paranúmeros naturais.

Calcular A÷ B, onde A = an−1 . . . a0, B = bm−1 . . . b0 e m ≤ nNote que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , parai = 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

Page 30: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária paranúmeros naturais.

Calcular A÷ B, onde A = an−1 . . . a0, B = bm−1 . . . b0 e m ≤ nNote que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , parai = 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

Page 31: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária paranúmeros naturais.

Calcular A÷ B, onde A = an−1 . . . a0, B = bm−1 . . . b0 e m ≤ nNote que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , parai = 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

Page 32: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária paranúmeros naturais.

Calcular A÷ B, onde A = an−1 . . . a0, B = bm−1 . . . b0 e m ≤ nNote que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , parai = 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

Page 33: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Divisão binária

Para casa: escrever, em pseudocódigo, o algoritmo da divisão binária paranúmeros naturais.

Calcular A÷ B, onde A = an−1 . . . a0, B = bm−1 . . . b0 e m ≤ nNote que as subtrações “da esquerda para a direita”, são, na verdade,subtrações do dividendo pelo divisor multiplicado por 2i , parai = 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

Page 34: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

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

Page 35: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Note que se A é múltiplo de B, o resultado da última subtração será 0E 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

Page 36: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Note que se A é múltiplo de B, o resultado da última subtração será 0E 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

Page 37: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Note que se A é múltiplo de B, o resultado da última subtração será 0E 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

Page 38: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Note que se A é múltiplo de B, o resultado da última subtração será 0E 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

Page 39: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

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

Note que se A é múltiplo de B, o resultado da última subtração será 0E 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

Page 40: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Números racionais

O que acontece com os algoritmos da soma, subtração, multiplicaçãoe divisão quando os números sendo operados não são inteiros?

Sem perder a generalidade, suporemos que A e B possuem kalgarismos depois da vírgula. (Se eles não tiverem a mesmaquantidade de algarismos após a vírgula?)

A = an−1an−2 . . . a1a0 , a−1 . . . a−k

B = bm−1am−2 . . . b0 , b−1 . . . b−k

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

AB =

A× 2k

B × 2k =an−1an−2 . . . a1a0a−1 . . . a−kbm−1am−2 . . . b0b−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

Page 41: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Números racionais

O que acontece com os algoritmos da soma, subtração, multiplicaçãoe divisão quando os números sendo operados não são inteiros?Sem perder a generalidade, suporemos que A e B possuem kalgarismos depois da vírgula. (Se eles não tiverem a mesmaquantidade de algarismos após a vírgula?)

A = an−1an−2 . . . a1a0 , a−1 . . . a−k

B = bm−1am−2 . . . b0 , b−1 . . . b−k

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

AB =

A× 2k

B × 2k =an−1an−2 . . . a1a0a−1 . . . a−kbm−1am−2 . . . b0b−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

Page 42: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Números racionais

O que acontece com os algoritmos da soma, subtração, multiplicaçãoe divisão quando os números sendo operados não são inteiros?Sem perder a generalidade, suporemos que A e B possuem kalgarismos depois da vírgula. (Se eles não tiverem a mesmaquantidade de algarismos após a vírgula?)

A = an−1an−2 . . . a1a0 , a−1 . . . a−k

B = bm−1am−2 . . . b0 , b−1 . . . b−k

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

AB =

A× 2k

B × 2k =an−1an−2 . . . a1a0a−1 . . . a−kbm−1am−2 . . . b0b−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

Page 43: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Números racionais

O que acontece com os algoritmos da soma, subtração, multiplicaçãoe divisão quando os números sendo operados não são inteiros?Sem perder a generalidade, suporemos que A e B possuem kalgarismos depois da vírgula. (Se eles não tiverem a mesmaquantidade de algarismos após a vírgula?)

A = an−1an−2 . . . a1a0 , a−1 . . . a−k

B = bm−1am−2 . . . b0 , b−1 . . . b−k

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

AB =

A× 2k

B × 2k =an−1an−2 . . . a1a0a−1 . . . a−kbm−1am−2 . . . b0b−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

Page 44: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Números racionais

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

Page 45: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Números racionais

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

Page 46: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação numérica

Representação de números no papel: usamos tantos dígitos foremnecessários.Limitado apenas pela quantidade de papel, tempo disponível paraescrever os dígitos, paciência. . .

Número π:

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379...

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

Page 47: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação numérica

Representação de números no papel: usamos tantos dígitos foremnecessários.Limitado apenas pela quantidade de papel, tempo disponível paraescrever os dígitos, paciência. . .

Número π:

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379...

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

Page 48: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação numérica num computadordigital

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, esim 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

Page 49: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação numérica num computadordigital

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, esim 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

Page 50: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação numérica num computadordigital

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, esim 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

Page 51: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação numérica num computadordigital

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, esim 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

Page 52: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação numérica num computadordigital

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, esim 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

Page 53: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Bits e palavras

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:

I 8 bits = byte (binary term) ou octetoI 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

Page 54: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Bits e palavras

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:

I 8 bits = byte (binary term) ou octetoI 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

Page 55: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Bits e palavras

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:I 8 bits = byte (binary term) ou octetoI 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

Page 56: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Bits e palavras

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:

I 8 bits = byte (binary term) ou octetoI 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

Page 57: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números em palavras binárias

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

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

. . .︸ ︷︷ ︸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

Page 58: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números em palavras binárias

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

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

0 0 an−1 an−2 . . . a2 a1 a0︸ ︷︷ ︸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

Page 59: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números em palavras binárias

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

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

0 0 an−1 an−2 . . . a2 a1 a0︸ ︷︷ ︸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

Page 60: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números em palavras binárias

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

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

0 0 an−1 an−2 . . . a2 a1 a0︸ ︷︷ ︸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

Page 61: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números em palavras binárias

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

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

0 0 an−1 an−2 . . . a2 a1 a0︸ ︷︷ ︸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

Page 62: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números: inteiros sem sinal

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

Page 63: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números: inteiros sem sinal

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

Page 64: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números: inteiros sem sinal

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 bits100 . . . 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

Page 65: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números: inteiros sem sinal

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 bits100 . . . 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

Page 66: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números: inteiros com sinal

Precisamos reservar espaço na palavra para representar, além dosalgarismos 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:

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

sinal︷ ︸︸ ︷s

magnitude︷ ︸︸ ︷aw−2 aw−1 . . . a2 a1 a0︸ ︷︷ ︸

w bits

Esta representação é conhecida como sinal-magnitude.Ex.: inteiros representados em sinal-magnitude com 3 bits000 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

Page 67: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números: inteiros com sinal

Precisamos reservar espaço na palavra para representar, além dosalgarismos 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:I sinal +: bit de sinal 0I sinal −: bit de sinal 1

sinal︷ ︸︸ ︷s

magnitude︷ ︸︸ ︷aw−2 aw−1 . . . a2 a1 a0︸ ︷︷ ︸

w bits

Esta representação é conhecida como sinal-magnitude.Ex.: inteiros representados em sinal-magnitude com 3 bits000 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

Page 68: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números: inteiros com sinal

Precisamos reservar espaço na palavra para representar, além dosalgarismos 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:

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

sinal︷ ︸︸ ︷s

magnitude︷ ︸︸ ︷aw−2 aw−1 . . . a2 a1 a0︸ ︷︷ ︸

w bits

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

Ex.: inteiros representados em sinal-magnitude com 3 bits000 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

Page 69: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representando números: inteiros com sinal

Precisamos reservar espaço na palavra para representar, além dosalgarismos 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:

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

sinal︷ ︸︸ ︷s

magnitude︷ ︸︸ ︷aw−2 aw−1 . . . a2 a1 a0︸ ︷︷ ︸

w bits

Esta representação é conhecida como sinal-magnitude.Ex.: inteiros representados em sinal-magnitude com 3 bits000 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

Page 70: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação sinal-magnitude

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 entendersimples 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

Page 71: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação sinal-magnitude

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 entendersimples 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

Page 72: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação sinal-magnitude

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 entendersimples 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

Page 73: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação sinal-magnitude

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 entendersimples 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

Page 74: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação sinal-magnitude

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 entendersimples 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

Page 75: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

vimos que, uma maneira de fazer subtrações na forma A− B eratomar 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− Bsuponha que estamos representando todos os números positivos empalavras binárias de tamanho w na forma:

0 aw−2 aw−3 . . . a1 a0

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

Page 76: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

vimos que, uma maneira de fazer subtrações na forma A− B eratomar 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− Bsuponha que estamos representando todos os números positivos empalavras binárias de tamanho w na forma:

0 aw−2 aw−3 . . . a1 a0

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

Page 77: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

vimos que, uma maneira de fazer subtrações na forma A− B eratomar 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− Bsuponha que estamos representando todos os números positivos empalavras binárias de tamanho w na forma:

0 aw−2 aw−3 . . . a1 a0

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

Page 78: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

vimos que, uma maneira de fazer subtrações na forma A− B eratomar 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− Bsuponha que estamos representando todos os números positivos empalavras binárias de tamanho w na forma:

0 aw−2 aw−3 . . . a1 a0

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 1Rodrigo Hausen (CMCC – UFABC) Aula 3: Aritmética, Representação de dados28 e 30 de janeiro de 2013 36 / 40

Page 79: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

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

Números positivos

0 aw−2 aw−3 . . . a1 a0︸ ︷︷ ︸w−1 bits

= +(aw−2aw−3 . . . a1a0)2

Números negativos

1 aw−2 aw−3 . . . a1 a0︸ ︷︷ ︸w−1 bits

= −(aw−2aw−3 . . . a1a0 + 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 = 36101 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

Page 80: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

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

Números positivos

0 aw−2 aw−3 . . . a1 a0︸ ︷︷ ︸w−1 bits

= +(aw−2aw−3 . . . a1a0)2

Números negativos

1 aw−2 aw−3 . . . a1 a0︸ ︷︷ ︸w−1 bits

= −(aw−2aw−3 . . . a1a0 + 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 = 36101 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

Page 81: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

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

Números positivos

0 aw−2 aw−3 . . . a1 a0︸ ︷︷ ︸w−1 bits

= +(aw−2aw−3 . . . a1a0)2

Números negativos

1 aw−2 aw−3 . . . a1 a0︸ ︷︷ ︸w−1 bits

= −(aw−2aw−3 . . . a1a0 + 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

Page 82: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

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

Números positivos

0 aw−2 aw−3 . . . a1 a0︸ ︷︷ ︸w−1 bits

= +(aw−2aw−3 . . . a1a0)2

Números negativos

1 aw−2 aw−3 . . . a1 a0︸ ︷︷ ︸w−1 bits

= −(aw−2aw−3 . . . a1a0 + 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 = 36101 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

Page 83: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

Inteiros representados em complemento de dois em palavras de 3 bits:011 = +310010 = +210001 = +110000 = 010

111 =

− 110 =

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

− 210 =

− (10 + 1)2 = −(01+ 1)2101 = −310100 = −410

note que o intervalo de representação não é simétricocomo só há uma representação para 0, é possível representar uminteiro 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

Page 84: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

Inteiros representados em complemento de dois em palavras de 3 bits:011 = +310010 = +210001 = +110000 = 010111 =

− 110 =

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

110 =

− 210 =

− (10 + 1)2 = −(01+ 1)2101 = −310100 = −410

note que o intervalo de representação não é simétricocomo só há uma representação para 0, é possível representar uminteiro 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

Page 85: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

Inteiros representados em complemento de dois em palavras de 3 bits:011 = +310010 = +210001 = +110000 = 010111 = − 110 = − (11 + 1)2 = −(00+ 1)2

110 =

− 210 =

− (10 + 1)2 = −(01+ 1)2101 = −310100 = −410

note que o intervalo de representação não é simétricocomo só há uma representação para 0, é possível representar uminteiro 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

Page 86: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

Inteiros representados em complemento de dois em palavras de 3 bits:011 = +310010 = +210001 = +110000 = 010111 = − 110 = − (11 + 1)2 = −(00+ 1)2110 =

− 210 =

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

101 = −310100 = −410

note que o intervalo de representação não é simétricocomo só há uma representação para 0, é possível representar uminteiro 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

Page 87: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

Inteiros representados em complemento de dois em palavras de 3 bits:011 = +310010 = +210001 = +110000 = 010111 = − 110 = − (11 + 1)2 = −(00+ 1)2110 = − 210 = − (10 + 1)2 = −(01+ 1)2

101 = −310100 = −410

note que o intervalo de representação não é simétricocomo só há uma representação para 0, é possível representar uminteiro 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

Page 88: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

Inteiros representados em complemento de dois em palavras de 3 bits:011 = +310010 = +210001 = +110000 = 010111 = − 110 = − (11 + 1)2 = −(00+ 1)2110 = − 210 = − (10 + 1)2 = −(01+ 1)2101 = −310

100 = −410note que o intervalo de representação não é simétricocomo só há uma representação para 0, é possível representar uminteiro 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

Page 89: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

Inteiros representados em complemento de dois em palavras de 3 bits:011 = +310010 = +210001 = +110000 = 010111 = − 110 = − (11 + 1)2 = −(00+ 1)2110 = − 210 = − (10 + 1)2 = −(01+ 1)2101 = −310100 = −410

note que o intervalo de representação não é simétricocomo só há uma representação para 0, é possível representar uminteiro 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

Page 90: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

Inteiros representados em complemento de dois em palavras de 3 bits:011 = +310010 = +210001 = +110000 = 010111 = − 110 = − (11 + 1)2 = −(00+ 1)2110 = − 210 = − (10 + 1)2 = −(01+ 1)2101 = −310100 = −410

note que o intervalo de representação não é simétricocomo só há uma representação para 0, é possível representar uminteiro 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

Page 91: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

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

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)Vantagens

representação única para o zerosomas e subtrações são feitas da mesma forma que para números semsinal

Desvantagens

não é tão intuitivo para nós (indiferente para computador)comparação não é tão simples: 1 = 0 0 1 > 1 0 1 − 3

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

Page 92: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

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

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)Vantagens

representação única para o zerosomas e subtrações são feitas da mesma forma que para números semsinal

Desvantagens

não é tão intuitivo para nós (indiferente para computador)comparação não é tão simples: 1 = 0 0 1 > 1 0 1 − 3

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

Page 93: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

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

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)Vantagens

representação única para o zerosomas e subtrações são feitas da mesma forma que para números semsinal

Desvantagens

não é tão intuitivo para nós (indiferente para computador)comparação não é tão simples: 1 = 0 0 1 > 1 0 1 − 3

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

Page 94: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

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

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)

Vantagens

representação única para o zerosomas e subtrações são feitas da mesma forma que para números semsinal

Desvantagens

não é tão intuitivo para nós (indiferente para computador)comparação não é tão simples: 1 = 0 0 1 > 1 0 1 − 3

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

Page 95: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Representação em complemento de 2

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

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)Vantagens

representação única para o zerosomas e subtrações são feitas da mesma forma que para números semsinal

Desvantagens

não é tão intuitivo para nós (indiferente para computador)comparação não é tão simples: 1 = 0 0 1 > 1 0 1 − 3

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

Page 96: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Para casa

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

para 16 bits?

I O que acontece se o resultado da soma/subtração/multiplicação dedois inteiros representados em palavras de w bits não couber em wbits? (Overflow)

I 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

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

Page 97: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Para casa

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

para 16 bits?I 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 wbits? (Overflow)

I 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

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

Page 98: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Para casa

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

para 16 bits?I 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 wbits? (Overflow)

I 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

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

Page 99: Aula 3: Aritmética, Representação de dados - Circuitos Digitais

Para casa

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

para 16 bits?I 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 wbits? (Overflow)

I 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

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