Introdução à Multimídia

Propaganda
S is temas numéricos e a
R epres entação Interna dos
Dados no C omputador
Ricardo Azambuja Silveira
INE-CTC-UFSC
E-Mail: [email protected]
URL: http://www.inf.ufsc.br~silveira
Material elaborado pelo prof Roberto Willrich
Conteúdo do Capítulo
– Sistemas numéricos
• Binário, octal, hexadecimal
• Operações aritméticas binária e hexadecimal
• Operações lógicas binárias e decimais
– Tipos de dados tratados pelo computador
- 03/05/06
• bit, nibble, byte, word, double word, quad
word
– Representação interna de caracteres
– Representação interna de números
– Representação digital de áudio, imagem e
2/32
vídeo
Sistemas Numéricos
• Sistemas numéricos
– Sistemas de notação usados para representar quantidades
abstratas denominadas números
– São definido pela base que utiliza
• base = número de símbolos diferentes (algarismos)
necessários para representar um número qualquer
INE5602 - 03/05/06
• Sistema Decimal
– Dez símbolos diferentes ou dígitos para representar um
número (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
– Um sistema numérico de base 10
3/32
Sistemas Numéricos
• Sistema de Número Posicional
– Número é representado por uma seqüência
de dígitos onde cada posição de dígito tem
um peso associado
– No sistema decimal
• Valor de d3d2d1d0
- 03/05/06
– d3*103 + d2*102+ d1*101 + d0*100
– Cada dígito di tem um peso de 10i
• Exemplo: 3.098.323
– representação de
3*106+0*105+9*104+8*103+3*102+2*101+3*100
4/32
Sistema Octal
• Sistema Octal ou Base 8
– Apresenta oito dígitos: 0, 1, 2, 3, 4, 5, 6, 7
– Contagem é realizada como segue: 0, 1, 2, 3, 4, 5, 6, 7, 10,
11, 12, 13, 14, 15, 16, 17, 20,...
• Conversão Octal para Decimal
– Valor de um número octal de 4 dígitos o3o2o1o0
• o3*83 + o2*82+ o1*81 + o0*80
- 03/05/06
• Cada dígito oi tem um peso de 8i
– Valor octal 175o
• 5*1+7*8+1*64 = 125d
5/32
Sistema Octal
• Exercício: Qual é a representação Decimal de 2154o?
– Valor de um número octal de 3 dígitos o2o1o0
• o3*83+ o2*82+ o1*81 + o0*80
2154o
- 03/05/06
= 2*521+1*82+5*81+4*80
=
1024+64+40+4=1132
6/32
Sistema Octal
• Conversão Decimal para Octal
– Sistema decimal:
• 654 = 4 unidades, 5 dezenas e 6 centenas
• Para verificar isto, divide-se o número pela sua base (que é
10):
654/10 = 65
Resto 4 (*1)
/10 = 6
Resto 5 (*10)
/10 = 0
Resto 6 (*100)
– Para converter Decimal para Octal basta dividir por 8
- 03/05/06
• 200d
200/8= 25
25/8 = 3
3/8 = 0
Resto 0
Resto 1
Resto 3
200d=310o
• Exercício: Qual é o valor na base 8 do número 1534d?
7/32
Sistema Binário
• Sistema Binário (Base 2)
– Apresenta unicamente dois dígitos: 0,1
– Contagem é realizada como segue: 0, 1, 10, 11, 100, 101,
110, 111, 1000, ...
• Conversão Binário para Decimal
– Valor de um número binário de 8 dígitos b7b6b5b4b3b2b1b0
• b7*27 + b6*26+ b5*25 + b4*24 + d3*23 + d2*22+ d1*21 + d0*20
• dígito bi tem um peso de 2i
- 03/05/06
– Valor binário 10101010b
• 10101010b = 0*1+1*2+0*4+1*8+0*16+1*32+0*64+1*128 =
170d
– Exercício: Qual é o valor decimal de 10001b
8/32
Sistema Binário
• Conversão Decimal para Binário
– Mesmo processo para conversão de decimal para octal, mas
dividindo por 2
• 200d
200/2=100 Resto 0
100/2= 50 Resto 0
50/2 = 25 Resto 0
- 03/05/06
25/2 = 12 Resto 1
12/2 =
6 Resto 0
6/2 =
3 Resto 0
3/2 =
1 Resto 1
1/2 =
0 Resto 1 = 1 1 0 0 1 0 0 0b
9/32
Sistema Hexadecimal
• Sistema Hexadecimal
– Na base hexadecimal tem-se 16 dígitos
• 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
• A, B, C, D, E, F
– Representam os números 10d a 15d
– Contamos os dígitos hexadecimais
- 03/05/06
• 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, ..., 19,
1A, 1B, 1C, 1D, 1E, 1F, 20, 21, ...
10/32
Sistema Hexadecimal
• Conversão Binário para Hexadecimal
– Exemplo: 101011b (1+2+8+32=43d)
– Passo 1: dividir o número binário em grupos de 4 bits (da
direita para a esquerda)
• 0010; 1011
– Passo 2: tomar cada grupo como um número independente
e converter em dígitos decimais
- 03/05/06
• 0010;1011=2;11
– Passo 3: substituir todos os números decimais maiores que
9 pelas suas respectivas representações em hexadecimal
• 00101011b = 2Bh
• Conversão Hexadecimal para Binário
– Inverter os passos
11/32
Sistema Hexadecimal
• Conversão Hexadecimal em Decimal
– Mesma fórmula utilizada na conversão binário para decimal
• sendo que a base 2 é trocada por 16
– Converter B2Ah em decimal:
B -> 11*162
= 2816d
2 -> 2*161
=
32d
A -> 10*160
=
10d
- 03/05/06
2858d
12/32
Sistema Hexadecimal
• Conversão Decimal para Hexadecimal
– Mesma fórmula utilizada na conversão de um número
decimal para binário
• dividindo por 16 em vez de 2
– Converter 1069d em hexadecimal
1069/16 = 66
Resto 13d = Dh
66/16
= 4
Resto
2d = 2h
4/16
= 0
Resto
4d = 4h
= 42Dh
- 03/05/06
1069d
13/32
Operações Aritméticas: Aritmética Binária
• Adição binária
– Fazem-se as contas coluna a coluna, da direita para a
esquerda, fazendo o transporte de um (<e vai um>) quando
for o caso
– Observando-se as seguintes operações básicas:
• 0+0=0
• 0+1=1
- 03/05/06
• 1 + 1 = 10 (1 mais 1 é igual a 0 e vai 1)
• 1 + 1 + 1 = 11 (1 mais 1 mais 1 é igual a 1 e vai 1)
– Exemplos
1 1
101
+1101
10 010
11
11001
+10011
101 100
14/32
Operações Aritméticas: Aritmética Binária
• Subtração binária
– Como o conjunto de símbolos contém apenas 2 dígitos
• ao se efetuar a subtração parcial entre 2 dígitos
• se o segundo (diminuidor) exceder o primeiro (diminuendo)
– subtrai-se uma unidade ao dígito imediatamente à esquerda no
diminuendo (se existir e o seu valor for 1), convertendo-o a 0
» substituímos o diminuendo por 10b (2d)
– Se o dígito imediatamente à esquerda for 0
- 03/05/06
» procura-se nos dígitos consecutivos
15/32
Operações Aritméticas: Aritmética Binária
• Subtração binária
– Exemplos: 11101 – 111
- 03/05/06
2
0 02
11101
-111
10110
– Exercício: 100001-101
16/32
Operações Aritméticas: Aritmética Binária
• Multiplicação
– Semelhante à multiplicação decimal
• exceto pelo fato da soma final dos produtos se fazer em binário
– As seguintes igualdades devem ser respeitadas:
• 0*0=0; 0*1=0; 1*0=0; 1*1=1
- 03/05/06
– Exemplos: multiplicar os números 1011 e 1101
– Exercício: multiplicar 10101 e 101
17/32
Operações Aritméticas: Aritmética Binária
• Divisão
– Pode ser feita de maneira idêntica à divisão decimal
- 03/05/06
• exceto pelo fato das multiplicações e subtrações internas ao
processo serem feitas em binário
18/32
Operações Aritméticas: Aritmética Binária
- 03/05/06
• Divisão
19/32
Operações Aritméticas Hexadecimal
• Adição
– Exemplo: 8+5
• em decimal, o valor seria 13
• em hexadecimal, o valor 13 é representado por Dh
– Sempre que o resultado ultrapassar a base
• subtraímos a base do resultado e “vai-um”
• Exemplo: 19+9
- 03/05/06
– em decimal, o resultado de 9+9 é 18
– como o valor ultrapassa a base, subtraímos esta do resultado: 1816=2
– fazendo o transporte para a coluna seguinte obtemos o resultado:
22h
20/32
Operações Aritméticas Hexadecimal
• Subtração
– A partir de um exemplo: 27h-1Eh
– Efetuamos a operação de subtração coluna a coluna
• primeira coluna o diminuidor (E) é superior ao diminuendo (7)
- 03/05/06
– então adicionamos a base ao diminuendo, executamos a
subtração, e há transporte de uma unidade que somamos ao
diminuidor da coluna seguinte
11
27h
-1Eh
0 9h
21/32
Operações Aritméticas Hexadecimal
• Multiplicação
- 03/05/06
– Esta operação pode fazer-se facilmente por meio da tabela
de dupla entrada
22/32
Operações Aritméticas Hexadecimal
• Divisão
– Exemplos
- 03/05/06
• 2Fh/12h
23/32
Operações Lógicas
• Operações lógicas com bits
– AND
• operação que aceita dois operandos
– operando são binários simples (base 2)
• operação AND é
– 0 and 0 = 0
- 03/05/06
– 0 and 1 = 0
– 1 and 0 = 0
– 1 and 1 = 1
• Em português:
– “se o primeiro operando é 1 e o segundo operando é
1, o resultado é 1, senão o resultado é 0”
24/32
Operações Lógicas
• Operações lógicas com bits
– AND
- 03/05/06
• tabela verdade
Op1
Op2
Op1 AND Op2
0
0
0
0
1
0
1
0
0
1
1
1
25/32
Operações Lógicas
• Operações lógicas com bits
– OR
• operação que aceita dois operandos
– operando são binários simples (base 2)
• operação OR é
- 03/05/06
–
–
–
–
0 or 0 = 0
0 or 1 = 1
1 or 0 = 1
1 or 1 = 1
• Em português:
– “se o primeiro operando é 1 ou o segundo operando
é 1 (ou os dois), o resultado é 1, senão o resultado é
0”
• Conhecido com OR-INCLUSIVE
26/32
Operações Lógicas
• Operações lógicas com bits
– OR
- 03/05/06
• tabela verdade
Op1
Op2
Op1 OR Op2
0
0
0
0
1
1
1
0
1
1
1
1
27/32
Operações Lógicas
• Operações lógicas com bits
– XOR
• operação que aceita dois operandos
– operando são binários simples (base 2)
• operação OR é
– 0 xor 0 = 0
- 03/05/06
– 0 xor 1 = 1
– 1 xor 0 = 1
– 1 xor 1 = 0
• Em português:
– “Se o primeiro operando ou o segundo operando,
mas não os dois, for 1, o resultado é 1, senão o
28/32
Operações Lógicas
• Operações lógicas com bits
– XOR
- 03/05/06
• tabela verdade
Op1
Op2
Op1 XOR Op2
0
0
0
0
1
1
1
0
1
1
1
0
29/32
Operações Lógicas
• Operações lógicas com bits
– NOT
• operação que aceita um operando
• operando é binário simples (base 2)
• operação NOT é
– not 0 = 1
- 03/05/06
– not 1 = 0
• Em português:
– “Se o operando for 1, o resultado é 0, senão o
resultado é 1”
30/32
Operações Lógicas
• Operações lógicas com bits
– NOT
• tabela verdade
NOT Op1
0
1
1
0
- 03/05/06
Op1
31/32
Operações Lógicas
• Operações Lógicas com números
– As operações lógicas trabalham apenas com operandos com
bit único
• Para realizar estas operações sobre um número (8, 16, 32 bits)
é necessário realizar a operação bit-a-bit
– Exemplo: operação lógica AND com dois operandos de 8 bits
- 03/05/06
AND
1011 0101
1110 1110
1010 0100
– Como as operações lógicas são definidos em termos de
valores binários, deve-se converter os números decimais,
hexadecimais, etc., para números binários antes de realizar
as operações lógicas
32/32
Download