Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por...

32
Sistemas de Numeração (Aula Extra) Sistemas de diferentes bases Álgebra Booleana Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I – Eng. Elétrica 2007/2

Transcript of Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por...

Page 1: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Numeração(Aula Extra)

Sistemas de diferentes bases

Álgebra Booleana

Roberta Lima Gomes - LPRM/DI/UFES

Sistemas de Programação I – Eng. Elétrica 2007/2

Page 2: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES2222

http://www.inf.ufes.br/~rgomes/sp1.htm

Sistemas de Numeração� Um sistema de numeração é formado por um conjunto de símbolos

(alfabeto) que é utilizado para representar quantidades e por regrasque definem a forma de representação.

� É definido por sua base, a qual define o número de algarismos (ou dígitos) utilizados para representar números.

� Base: b

� Conjunto de dígitos: d = {0, 1, 2, ..., b-2, b-1}

� Notação posicional: � A posição é que dá importância ou peso ao dígito.� Os pesos são todos potências de uma dada base� O dígito mais significativo é o que está mais à esquerda (MSB)� O dígito menos significativo é o que está mais à direita (LSB)� dmbm+ dm-1b

m-1+ ... + d1b1+ d0b

0

Page 3: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES3333

http://www.inf.ufes.br/~rgomes/sp1.htm

Exemplos de Sistemas de Numeração (1)

� Sistema decimal � b = 10� d = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}� 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, ...� 1842 ⇒ 1x103 + 8x102 + 4x101 + 2x100

� Sistema Binário� b = 2� d = {0, 1}� 0, 1, 10, 11, 100, 101, 110, 111, ...� 1011 ⇒ 1x23 + 0x22 + 1x21 + 1x20

Computadores usamo sistema binário

Page 4: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES4444

http://www.inf.ufes.br/~rgomes/sp1.htm

Exemplos de Sistemas de Numeração (2)

� Base Octal� b = 8� d = {0, 1, 2, 3, 4, 5, 6, 7}� 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20 ...� 4501 ⇒ 4x83 + 5x82 + 0x81 + 1x80

� Base Hexadecimal� b = 16� d = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}� 0, 1, ... 8, 9, A, B, C, D, E, F, 10, 11 ... 18, 19, 1A, 1B, ...� F1A0⇒ 15x163 + 1x162 + 10x161 + 0x160

Page 5: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES5555

http://www.inf.ufes.br/~rgomes/sp1.htm

Conversão da base B para a base Decimal

� A conversão de um número na base B para a base decimal é feita através da multiplicação dos (valores decimais dos) dígitos que constituem o número por potências adequadas de B� Binário 1011 (10112) ⇒

� Octal 4501 (45018)⇒

� Hexadecimal F1A0 (F1A016) ⇒

Page 6: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES6666

http://www.inf.ufes.br/~rgomes/sp1.htm

Conversão da base B para a base Decimal

� A conversão de um número na base B para a base decimal é feita através da multiplicação dos (valores decimais dos) dígitos que constituem o número por potências adequadas de B� Binário 1011 (10112) ⇒

� Octal 4501 (45018)⇒

� Hexadecimal F1A0 (F1A016) ⇒

1x23 + 0x22 + 1x21 + 1x20 = 1110

4x83 + 5x82 + 0x81 + 1x80 = 206910

15x163 + 1x162 + 10x161 + 0x160 = 6185610

Page 7: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES7777

http://www.inf.ufes.br/~rgomes/sp1.htm

Exercícios� converter binário para decimal

� a. (1010111)2 ( )10

� b. (11111111)2 ( )10

� c. (1011011011)2 ( )10

� d. (0100001)2 ( )10

� e. (110011)2 ( )10

� f. (1000110001)2 ( )10

� g. (111000111)2 ( )10

� h. (1100110011)2 ( )10

� i. (00100100)2 ( )10

Page 8: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES8888

http://www.inf.ufes.br/~rgomes/sp1.htm

Exercícios� converter binário para decimal

� a. (1010111)2 ( )10

� b. (11111111)2 ( )10

� c. (1011011011)2 ( )10

� d. (0100001)2 ( )10

� e. (110011)2 ( )10

� f. (1000110001)2 ( )10

� g. (111000111)2 ( )10

� h. (1100110011)2 ( )10

� i. (00100100)2 ( )10

87

255

731

33

51

561

455

819

36

Page 9: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES9999

http://www.inf.ufes.br/~rgomes/sp1.htm

Conversão de Decimal para Binário

� Divisões sucessivas

2610 = 19710 =

Page 10: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES10101010

http://www.inf.ufes.br/~rgomes/sp1.htm

110102

Conversão de Decimal para Binário

� Divisões sucessivas

2610 = 19710 = 110001012

Page 11: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES11111111

http://www.inf.ufes.br/~rgomes/sp1.htm

Conversões para Octal e Hexadecimal

� As bases que são potências de 2 são facilmente convertidas em binário e vice-versa� Octal 1 dígito octal = 3 dígitos binários� Hexadecimal 1 dígito hexa = 4 dígitos binários

2D316 = 10110100112 = 13238� Vantagens do Hexadecimal

� Usam menos dígitos para representar um dado número� São mais facilmente entendidas por humanos

Page 12: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES12121212

http://www.inf.ufes.br/~rgomes/sp1.htm

Exercícios

� Converter os seguintes números para a base 10� A016 , 10216 , 118

� Converter os seguintes números � 1310 para binário� 499 para hexadecimal� 65 para octal

� Observação: Os número sem indicação de base, salvo indicação ao contrário, são decimais.

Page 13: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES13131313

http://www.inf.ufes.br/~rgomes/sp1.htm

Aritmética Binária (1)

� Basicamente as mesmas regras que a aritmética decimal !� Somam-se os números dígito a dígito� De um dígito para o seguinte (mais significativo), pode

“ir um”, ou seja pode haver “CARRY”� 1 mais 1 são dois ( ou seja 102)

� Exemplos: 27+ 19

46

1000Carry

0110Soma

10102o

11001o

Tabela da adição binária

Page 14: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES14141414

http://www.inf.ufes.br/~rgomes/sp1.htm

Aritmética Binária (2)

� Multiplicação por potências de 2 realiza-se efetuando shift à esquerdaMultiplicar 0000010102 = 1010 por 8 (23).É necessário fazer o shift à esquerda 3 vezes:

0010100002 = 8010

13x 5

65

Page 15: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES15151515

http://www.inf.ufes.br/~rgomes/sp1.htm

Aritmética Binária (3)

� A subtração binária é realizada exatamente como subtração decimal

ou “vem 1”

Page 16: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES16161616

http://www.inf.ufes.br/~rgomes/sp1.htm

Aritmética Binária (4)

� Divisão� Por potência de 2 : shift p/ direita

Dividir 0000000112 por 2 => 0000000012

� Ou

Page 17: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES17171717

http://www.inf.ufes.br/~rgomes/sp1.htm

Representações com número fixo de dígitos (1)

� Numa máquina, o número de dígitos é FINITO� Não posso usar todos os dígitos que quiser� Há um número MÁXIMO que se pode representar:

� Conseqüência:� Os números não são representados por uma reta, mas sim por

uma circunferência !

Page 18: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES18181818

http://www.inf.ufes.br/~rgomes/sp1.htm

Representações com número fixo de dígitos (2)

� Erro de overflow:� Ocorre sempre que o resultado de uma operação é muito grande

para ser representado no hardware disponível� Exemplo (8 bits, inteiros positivos)

� Erro de underflow: � Ocorre sempre que o resultado de uma operação é muito pequeno

para ser representado no hardware disponível� Exemplo (3 bits inteiros positivos): num. de 0 a 7

3 - 6 = - 3 => NEGATIVO

0110 01012

+ 1111 00012

1 0101 01102

101+ 241

342

86

0112

- 1112

1002

Page 19: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES19191919

http://www.inf.ufes.br/~rgomes/sp1.htm

Representação de Números Negativos� Problema:

� Como indicar que um número é negativo, sem usar o símbolo “-” (usando apenas 0 e 1)

� Solução: usar uma das posições para representar o sinal

� Sinal e módulo� O bit mais significativo representa o sinal, e os restantes a

magnitude� Sinal = 0 => Positivo (representação normal)� Sinal = 1 => Negativo� Exemplos:

Page 20: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES20202020

http://www.inf.ufes.br/~rgomes/sp1.htm

Complemento de 2 (1)

� Idéia base� Facilitar somas e subtrações

� Para se chegar à representação negativa de um número em complemento de 2, deve-se realizar 2 etapas:1. Inverter todos os bits (inclusive o de sinal)2. Somar 1� Exemplo: 00110 (610) -> 11001 -> 11010 (-610)

� Conversão mais simples...� Inverter todos os dígitos a partir do primeiro ‘1’ (da dir.

p/ esq.)� Exemplo: 00110 - > 11010

Page 21: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES21212121

http://www.inf.ufes.br/~rgomes/sp1.htm

Complemento de 2 (2)

� VANTAGEM: Apenas uma representação para ‘0’� Conseqüência: quantidade de números positivos

diferente da quantidade de números negativos

� Exemplo (4 bits)� -8, -7, ..., -1, 0, 1, ..., 7

Page 22: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES22222222

http://www.inf.ufes.br/~rgomes/sp1.htm

� Outra vantagem: Adição

Complemento de 2 (2)

011001+ 100111

000000

25 + (-25)

0

10000001+ 01100011

11100100

(-127)+ 99

(-28)

Page 23: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES23232323

http://www.inf.ufes.br/~rgomes/sp1.htm

Ponto Flutuante (1)

� Formato de representação digital de números reais� O número é dividido numa mantissa (M) e um expoente

(E). � M · 2E //criada por Konrad Zuse

� Em geral, a base da potência é 2

� Três partes:� Sinal� Expoente� Mantissa

� Exemplo: (101,11 x 101101)2� Expoente: 1101� Mantissa: 101,11

Page 24: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES24242424

http://www.inf.ufes.br/~rgomes/sp1.htm

Ponto Flutuante (2)

� A mantissa é um número binário fracionário

� O valor de uma casa é metade do valor da casa vizinha à esquerda

� Esquematicamente

Page 25: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES25252525

http://www.inf.ufes.br/~rgomes/sp1.htm

Ponto Flutuante (3)

Page 26: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES26262626

http://www.inf.ufes.br/~rgomes/sp1.htm

Ponto Flutuante (2)

� Normalização da Mantissa� O separador deve ficar imediatamente após o primeiro

algarismo significativo

Page 27: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES27272727

http://www.inf.ufes.br/~rgomes/sp1.htm

Ponto Flutuante

� A Norma IEEE754 define os formatos para representar pontos flutuante

O expoente no Padrão IEEE é deslocado de +127 unidades

Page 28: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES28282828

http://www.inf.ufes.br/~rgomes/sp1.htm

Álgebra de Boole - Introdução e Histórico (1)

� Álgebra de Boole ou Booleana� Uma das ferramentas mais importantes para a eletrônica

� Criada por um matemático britânico, George Boole (1805-1864)� Propósito de representar e validar argumentos lógicos e filosóficos

usando base matemática.

� Usa proposições que têm sentido negativo ou positivo� P: Chove lá fora? R: Está chovendo lá fora� P: Você tem um guarda-chuva? R: Não tenho guarda-chuva

� É uma álgebra com operações construídas somente sobre dois valores representando verdadeiro(V) e falso(F).

Page 29: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES29292929

http://www.inf.ufes.br/~rgomes/sp1.htm

Álgebra de Boole - Principais Operações (1)

� Conjunção, ou regra “E”, ou AND� Necessita que todas as proposições básicas sejam

válidas, para que a geral seja válida

� Disjunção, ou regra “OU”, ou OR� Para que a geral seja válida, basta que uma das

proposições básicas seja verdadeira� Exemplo:

� Se você ou Maria quiserem sorvete, eu comprarei.P1: Você quer sorvete? R1:Não. P2: Maria quer sorvete? R2:SimRG: Então eu comprarei.

� Negação, ou regra “NÃO”, ou NOT

Page 30: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES30303030

http://www.inf.ufes.br/~rgomes/sp1.htm

Álgebra de Boole - Principais Operações (2)

111

001

010

000

SBA

AND

111

101

110

000

SBA

OR

BAS ⋅= BAS +=

01

10

SA

NOT

AS =

� Tabela verdade� Representa o funcionamento dos operadores lógicos.� Mostra os resultados das operações sobre todas as combinações

de valores dos operandos.

Page 31: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES31313131

http://www.inf.ufes.br/~rgomes/sp1.htm

Álgebra de Boole - Principais Operações (3)

11

01

10

00

SBA

NAND

11

01

10

00

SBA

XOR

BAS ⋅= BAS +=

11

01

10

00

SBA

NOR

BAS +=

Page 32: Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por potências de 2 realiza-se ... É necessário fazer o shift à esquerda 3 vezes: 00 1010

Sistemas de Programação I – 2007/2 Profa Roberta L.G. - LPRM/DI/UFES32323232

http://www.inf.ufes.br/~rgomes/sp1.htm

Referências

� Andrew S. Tanenbaum, Organização Estruturada de Computadores, 5ª edição, Prentice-Hall do Brasil, 2007. Apêndices A e B

� KNUTH, DONALD E. The Art Of Computing Programming. V.2, � http://www.wikipedia.org