Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por...
Transcript of Sistemas de Numeração - inf.furb.brmaw/arquitetura/aulaExtra.pdf · Multiplicação por...
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
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
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
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
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) ⇒
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
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
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
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 =
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
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
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.
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
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
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”
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
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 !
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
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:
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
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
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)
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
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
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)
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
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
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).
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
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.
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 +=
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