Exemplos de Sistemas de Numeração (2)

Propaganda
http://www.inf.ufes.br/~rgomes/sp1.htm
Sistemas de Numeração
Sistemas de Numeração
(Aula Extra)
Sistemas de diferentes bases
Álgebra Booleana
Um sistema de numeração é formado por um conjunto de símbolos
(alfabeto) que é utilizado para representar quantidades e por regras
que 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:
Roberta Lima Gomes - LPRM/DI/UFES
Sistemas de Programação I – Eng. Elétrica
2007/2
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-1bm-1+ ... + d1b1+ d0b0
2
Sistemas de Programação I – 2007/2
http://www.inf.ufes.br/~rgomes/sp1.htm
Exemplos de Sistemas de Numeração (1)
Sistema decimal
http://www.inf.ufes.br/~rgomes/sp1.htm
Exemplos de Sistemas de Numeração (2)
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
Sistemas de Programação I – 2007/2
3
Computadores usam
o sistema binário
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
Profa Roberta L.G. - LPRM/DI/UFES
Profa Roberta L.G. - LPRM/DI/UFES
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
4
Profa Roberta L.G. - LPRM/DI/UFES
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
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) ⇒
5
Sistemas de Programação I – 2007/2
Profa Roberta L.G. - LPRM/DI/UFES
Binário 1011 (10112) ⇒
1x23 + 0x22 + 1x21 + 1x20 = 1110
Octal 4501 (45018)⇒
4x83 + 5x82 + 0x81 + 1x80 = 206910
Hexadecimal F1A0 (F1A016) ⇒
15x163 + 1x162 + 10x161 + 0x160 = 6185610
http://www.inf.ufes.br/~rgomes/sp1.htm
Exercícios
6
Sistemas de Programação I – 2007/2
http://www.inf.ufes.br/~rgomes/sp1.htm
Exercícios
converter binário para decimal
converter binário para decimal
a. (1010111)2
(
)10
a. (1010111)2
b. (11111111)2
(
)10
b. (11111111)2
c. (1011011011)2
(
)10
c. (1011011011)2
d. (0100001)2
(
)10
d. (0100001)2
( 731 )10
( 33 )10
e. (110011)2
(
)10
e. (110011)2
(
f. (1000110001)2
(
)10
f. (1000110001)2
g. (111000111)2
(
)10
g. (111000111)2
h. (1100110011)2
(
)10
h. (1100110011)2
( 455 )10
( 819 )10
i. (00100100)2
(
)10
i. (00100100)2
(
Sistemas de Programação I – 2007/2
Profa Roberta L.G. - LPRM/DI/UFES
7
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas de Programação I – 2007/2
(
87 )10
( 255 )10
51 )10
( 561 )10
36 )10
8
Profa Roberta L.G. - LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/sp1.htm
Conversão de Decimal para Binário
Divisões sucessivas
Conversão de Decimal para Binário
2610 =
Sistemas de Programação I – 2007/2
http://www.inf.ufes.br/~rgomes/sp1.htm
2610 = 110102
19710 =
9
Divisões sucessivas
Profa Roberta L.G. - LPRM/DI/UFES
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
10
Sistemas de Programação I – 2007/2
http://www.inf.ufes.br/~rgomes/sp1.htm
19710 = 110001012
Profa Roberta L.G. - LPRM/DI/UFES
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
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
11
Profa Roberta L.G. - LPRM/DI/UFES
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
12
Profa Roberta L.G. - LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/sp1.htm
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”
Aritmética Binária (2)
x
1 mais 1 são dois ( ou seja 102)
Exemplos:
27
+ 19
46
Tabela da adição binária
1o
0
0
1
1
2o
0
1
0
1
Soma
0
1
1
0
Carry
0
0
0
1
Multiplicação por potências de 2 realiza-se
efetuando shift à esquerda
Multiplicar 0000010102 = 1010 por 8 (23).
É necessário fazer o shift à esquerda 3 vezes:
0010100002 = 8010
13
Sistemas de Programação I – 2007/2
Profa Roberta L.G. - LPRM/DI/UFES
14
Sistemas de Programação I – 2007/2
http://www.inf.ufes.br/~rgomes/sp1.htm
Profa Roberta L.G. - LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/sp1.htm
Aritmética Binária (4)
Aritmética Binária (3)
13
5
65
A subtração binária é realizada exatamente como subtração decimal
Divisão
Por potência de 2 : shift p/ direita
Dividir 0000000112 por 2 => 0000000012
Ou
ou “vem 1”
Sistemas de Programação I – 2007/2
15
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas de Programação I – 2007/2
16
Profa Roberta L.G. - LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/sp1.htm
Representações com número fixo de dígitos (1)
http://www.inf.ufes.br/~rgomes/sp1.htm
Representações com número fixo de dígitos (2)
Numa máquina, o número de dígitos é FINITO
Erro de overflow:
Não posso usar todos os dígitos que quiser
Há um número MÁXIMO que se pode representar:
Ocorre sempre que o resultado de uma operação é muito grande
para ser representado no hardware disponível
Exemplo (8 bits, inteiros positivos)
0110 01012
+ 1111 00012
1 0101 01102
Conseqüência:
Os números não são representados por uma reta, mas sim por
uma circunferência !
Erro de underflow:
17
Profa Roberta L.G. - LPRM/DI/UFES
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
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
Idéia base
Para se chegar à representação negativa de um
número em complemento de 2, deve-se realizar
2 etapas:
Conversão mais simples...
Profa Roberta L.G. - LPRM/DI/UFES
Facilitar somas e subtrações
1. Inverter todos os bits (inclusive o de sinal)
2. Somar 1
Exemplo: 00110 (610) -> 11001 -> 11010 (-610)
19
Profa Roberta L.G. - LPRM/DI/UFES
Complemento de 2 (1)
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
0112
1112
1002
http://www.inf.ufes.br/~rgomes/sp1.htm
Sinal e módulo
18
Sistemas de Programação I – 2007/2
http://www.inf.ufes.br/~rgomes/sp1.htm
Representação de Números Negativos
101
241
342
86
3 - 6 = - 3 => NEGATIVO
Sistemas de Programação I – 2007/2
+
Inverter todos os dígitos a partir do primeiro ‘1’ (da dir.
p/ esq.)
Exemplo: 00110 - > 11010
Sistemas de Programação I – 2007/2
20
Profa Roberta L.G. - LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/sp1.htm
Complemento de 2 (2)
Complemento de 2 (2)
VANTAGEM: Apenas uma representação para ‘0’
http://www.inf.ufes.br/~rgomes/sp1.htm
Conseqüência: quantidade de números positivos
diferente da quantidade de números negativos
011001
+ 100111
000000
Exemplo (4 bits)
-8, -7, ..., -1, 0, 1, ..., 7
21
Sistemas de Programação I – 2007/2
Outra vantagem: Adição
Profa Roberta L.G. - LPRM/DI/UFES
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:
10000001
+ 01100011
11100100
22
Sistemas de Programação I – 2007/2
http://www.inf.ufes.br/~rgomes/sp1.htm
Ponto Flutuante (1)
25
+ (-25)
0
(-127)
+ 99
(-28)
Profa Roberta L.G. - LPRM/DI/UFES
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
Sinal
Expoente
Mantissa
Exemplo: (101,11 x 101101)2
Expoente: 1101
Mantissa: 101,11
Sistemas de Programação I – 2007/2
23
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas de Programação I – 2007/2
24
Profa Roberta L.G. - LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/sp1.htm
Ponto Flutuante (3)
http://www.inf.ufes.br/~rgomes/sp1.htm
Ponto Flutuante (2)
Normalização da Mantissa
25
Sistemas de Programação I – 2007/2
Profa Roberta L.G. - LPRM/DI/UFES
O separador deve ficar imediatamente após o primeiro
algarismo significativo
Sistemas de Programação I – 2007/2
http://www.inf.ufes.br/~rgomes/sp1.htm
Ponto Flutuante
Profa Roberta L.G. - LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/sp1.htm
Álgebra de Boole - Introdução e Histórico (1)
A Norma IEEE754 define os formatos para representar
pontos flutuante
Álgebra de Boole ou Booleana
27
Profa Roberta L.G. - LPRM/DI/UFES
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
O expoente no Padrão IEEE é
deslocado de +127 unidades
Uma das ferramentas mais importantes para a eletrônica
Criada por um matemático britânico, George Boole (18051864)
Sistemas de Programação I – 2007/2
26
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
28
Profa Roberta L.G. - LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/sp1.htm
http://www.inf.ufes.br/~rgomes/sp1.htm
Álgebra de Boole - Principais Operações (2)
Álgebra de Boole - Principais Operações (1)
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:Sim
RG: Então eu comprarei.
AND
OR
S = A⋅ B
A
B
S
S = A+ B
A
B
S
A
S
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
Conjunção, ou regra “E”, ou AND
29
Sistemas de Programação I – 2007/2
Profa Roberta L.G. - LPRM/DI/UFES
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
http://www.inf.ufes.br/~rgomes/sp1.htm
Profa Roberta L.G. - LPRM/DI/UFES
Referências
NAND
NOR
XOR
S = A⋅ B
A
B
S
S = A+ B
A
B
S
S = A+ B
A
B
S
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
31
30
http://www.inf.ufes.br/~rgomes/sp1.htm
Álgebra de Boole - Principais Operações (3)
Sistemas de Programação I – 2007/2
S=A
Tabela verdade
Negação, ou regra “NÃO”, ou NOT
NOT
Profa Roberta L.G. - LPRM/DI/UFES
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
Sistemas de Programação I – 2007/2
32
Profa Roberta L.G. - LPRM/DI/UFES
Download