sistemas numéricos e a representação interna dos dados...

32
S istemas numéricos e a S istemas numéricos e a Representação Interna dos Representação Interna dos Dados no Computador Dados no Computador Ricardo Azambuja Silveira Ricardo Azambuja Silveira INE-CTC-UFSC INE-CTC-UFSC E-Mail: [email protected] E-Mail: [email protected] URL: http://www.inf.ufsc.br~silveira URL: http://www.inf.ufsc.br~silveira Material elaborado pelo prof Roberto Willrich Material elaborado pelo prof Roberto Willrich

Upload: duongdat

Post on 13-Mar-2018

216 views

Category:

Documents


1 download

TRANSCRIPT

S is temas numéricos e a S is temas numéricos e a Representação Interna dos Representação Interna dos Dados no ComputadorDados no Computador

Ricardo Azambuja SilveiraRicardo Azambuja SilveiraINE-CTC-UFSCINE-CTC-UFSCE-Mail: [email protected]: [email protected]: http://www.inf.ufsc.br~silveiraURL: http://www.inf.ufsc.br~silveiraMaterial elaborado pelo prof Roberto WillrichMaterial elaborado pelo prof Roberto Willrich

- 0

3/05

/06

2/32

Conteúdo do CapítuloConteúdo do Capítulo

– Sistemas numéricosSistemas numéricos• Binário, octal, hexadecimalBinário, octal, hexadecimal• Operações aritméticas binária e hexadecimalOperações aritméticas binária e hexadecimal• Operações lógicas binárias e decimaisOperações lógicas binárias e decimais

– Tipos de dados tratados pelo computadorTipos de dados tratados pelo computador• bit, nibble, byte, word, double word, quad bit, nibble, byte, word, double word, quad

wordword

– Representação interna de caracteresRepresentação interna de caracteres– Representação interna de númerosRepresentação interna de números– Representação digital de áudio, imagem e Representação digital de áudio, imagem e

vídeovídeo

INE5

602

- 03

/05/

06

3/32

Sistemas Numéricos Sistemas Numéricos

• Sistemas numéricos Sistemas numéricos – Sistemas de notação usados para representar quantidades Sistemas de notação usados para representar quantidades

abstratas denominadas númerosabstratas denominadas números– São definido pela base que utilizaSão definido pela base que utiliza

• basebase = número de símbolos diferentes (algarismos) = número de símbolos diferentes (algarismos) necessários para representar um número qualquernecessários para representar um número qualquer

• Sistema DecimalSistema Decimal– Dez símbolos diferentes ou dígitos para representar um Dez símbolos diferentes ou dígitos para representar um

número (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)número (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)– Um sistema numérico de base 10Um sistema numérico de base 10

- 0

3/05

/06

4/32

Sistemas Numéricos Sistemas Numéricos

• Sistema de Número Posicional Sistema de Número Posicional – Número é representado por uma seqüência Número é representado por uma seqüência

de dígitos onde cada posição de dígito tem de dígitos onde cada posição de dígito tem um peso associadoum peso associado

– No sistema decimalNo sistema decimal• Valor de dValor de d33dd22dd11dd00

– dd33*10*1033 + d + d22*10*1022+ d+ d11*10*1011 + d + d00*10*1000

– Cada dígito dCada dígito dii tem um peso de 10 tem um peso de 10ii

• Exemplo: 3.098.323 Exemplo: 3.098.323 – representação de representação de

3*103*1066+0*10+0*1055+9*10+9*1044+8*10+8*1033+3*10+3*1022+2*10+2*1011+3*10+3*1000

- 0

3/05

/06

5/32

Sistema Octal Sistema Octal

• Sistema Octal ou Base 8 Sistema Octal ou Base 8 – Apresenta oito dígitos: 0, 1, 2, 3, 4, 5, 6, 7Apresenta oito dígitos: 0, 1, 2, 3, 4, 5, 6, 7– Contagem é realizada como segue: 0, 1, 2, 3, 4, 5, 6, 7, 10, Contagem é realizada como segue: 0, 1, 2, 3, 4, 5, 6, 7, 10,

11, 12, 13, 14, 15, 16, 17, 20,...11, 12, 13, 14, 15, 16, 17, 20,...

• Conversão Octal para DecimalConversão Octal para Decimal– Valor de um número octal de 4 dígitos oValor de um número octal de 4 dígitos o33oo22oo11oo00

• oo33*8*833 + o + o22*8*822+ o+ o11*8*811 + o + o00*8*800

• Cada dígito oCada dígito oii tem um peso de 8 tem um peso de 8ii

– Valor octal 175Valor octal 175oo

• 5*1+7*8+1*64 = 1255*1+7*8+1*64 = 125dd

- 0

3/05

/06

6/32

Sistema Octal Sistema Octal

• ExercícioExercício: Qual é a representação Decimal de 2154: Qual é a representação Decimal de 2154oo??– Valor de um número octal de 3 dígitos oValor de um número octal de 3 dígitos o22oo11oo00

• oo33*8*833+ o+ o22*8*822+ o+ o11*8*811 + o + o00*8*800

21542154oo

= 2*521+1*8= 2*521+1*822+5*8+5*811+4*8+4*80 0

= = 1024+64+40+4=11321024+64+40+4=1132

- 0

3/05

/06

7/32

Sistema Octal Sistema Octal

• Conversão Decimal para OctalConversão Decimal para Octal– Sistema decimal: Sistema decimal:

• 654 = 4 unidades, 5 dezenas e 6 centenas654 = 4 unidades, 5 dezenas e 6 centenas• Para verificar isto, divide-se o número pela sua base (que é Para verificar isto, divide-se o número pela sua base (que é

10):10): 654/10 = 65654/10 = 65 Resto 4 (*1)Resto 4 (*1) /10 = 6/10 = 6 Resto 5 (*10)Resto 5 (*10) /10 = 0/10 = 0 Resto 6 (*100)Resto 6 (*100)

– Para converter Decimal para Octal basta dividir por 8Para converter Decimal para Octal basta dividir por 8• 200200dd

200/8= 25 200/8= 25 Resto 0Resto 025/8 = 3 25/8 = 3 Resto 1Resto 13/8 = 0 3/8 = 0 Resto 3Resto 3

200200dd=310=310oo

• ExercícioExercício: Qual é o valor na base 8 do número 1534: Qual é o valor na base 8 do número 1534dd??

- 0

3/05

/06

8/32

Sistema BinárioSistema Binário

• Sistema Binário (Base 2)Sistema Binário (Base 2)– Apresenta unicamente dois dígitos: 0,1Apresenta unicamente dois dígitos: 0,1– Contagem é realizada como segue: 0, 1, 10, 11, 100, 101, Contagem é realizada como segue: 0, 1, 10, 11, 100, 101,

110, 111, 1000, ...110, 111, 1000, ...

• Conversão Binário para DecimalConversão Binário para Decimal– Valor de um número binário de 8 dígitos bValor de um número binário de 8 dígitos b77bb66bb55bb44bb33bb22bb11bb00

• bb77*2*277 + b + b66*2*266+ b+ b55*2*255 + b + b44*2*244 + d + d33*2*233 + d + d22*2*222+ d+ d11*2*211 + d + d00*2*200

• dígito bdígito bii tem um peso de 2 tem um peso de 2ii

– Valor binário 10101010Valor binário 10101010bb • 1010101010101010bb = 0*1+1*2+0*4+1*8+0*16+1*32+0*64+1*128 = = 0*1+1*2+0*4+1*8+0*16+1*32+0*64+1*128 =

170170dd

– ExercícioExercício: Qual é o valor decimal de 10001: Qual é o valor decimal de 10001bb

- 0

3/05

/06

9/32

Sistema Binário Sistema Binário

• Conversão Decimal para BinárioConversão Decimal para Binário– Mesmo processo para conversão de decimal para octal, mas Mesmo processo para conversão de decimal para octal, mas

dividindo por 2dividindo por 2• 200200dd

200/2=100 Resto 0200/2=100 Resto 0

100/2= 50 Resto 0100/2= 50 Resto 0

50/2 = 25 Resto 050/2 = 25 Resto 0

25/2 = 12 Resto 125/2 = 12 Resto 1

12/2 = 6 Resto 012/2 = 6 Resto 0

6/2 = 3 Resto 06/2 = 3 Resto 0

3/2 = 1 Resto 13/2 = 1 Resto 1

1/2 = 0 Resto 1 = 1 1 0 0 1 0 0 01/2 = 0 Resto 1 = 1 1 0 0 1 0 0 0bb

- 0

3/05

/06

10/32

Sistema Hexadecimal Sistema Hexadecimal

• Sistema HexadecimalSistema Hexadecimal– Na base hexadecimal tem-se 16 dígitosNa base hexadecimal tem-se 16 dígitos

• 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

• A, B, C, D, E, FA, B, C, D, E, F– Representam os números 10Representam os números 10dd a 15 a 15dd

– Contamos os dígitos hexadecimais Contamos os dígitos hexadecimais • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, ..., 19, 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, ...1A, 1B, 1C, 1D, 1E, 1F, 20, 21, ...

- 0

3/05

/06

11/32

Sistema Hexadecimal Sistema Hexadecimal

• Conversão Binário para Hexadecimal Conversão Binário para Hexadecimal – Exemplo: 101011Exemplo: 101011bb (1+2+8+32=43 (1+2+8+32=43dd))

– Passo 1: dividir o número binário em grupos de 4 bits (da Passo 1: dividir o número binário em grupos de 4 bits (da direita para a esquerda)direita para a esquerda)

• 0010; 10110010; 1011

– Passo 2: tomar cada grupo como um número independente Passo 2: tomar cada grupo como um número independente e converter em dígitos decimaise converter em dígitos decimais

• 0010;1011=2;110010;1011=2;11

– Passo 3: substituir todos os números decimais maiores que Passo 3: substituir todos os números decimais maiores que 9 pelas suas respectivas representações em hexadecimal9 pelas suas respectivas representações em hexadecimal

• 0010101100101011bb = 2B = 2Bhh

• Conversão Hexadecimal para BinárioConversão Hexadecimal para Binário– Inverter os passosInverter os passos

- 0

3/05

/06

12/32

Sistema HexadecimalSistema Hexadecimal

• Conversão Hexadecimal em DecimalConversão Hexadecimal em Decimal– Mesma fórmula utilizada na conversão binário para decimalMesma fórmula utilizada na conversão binário para decimal

• sendo que a base 2 é trocada por 16sendo que a base 2 é trocada por 16

– Converter B2AConverter B2Ahh em decimal: em decimal:

B -> 11*16B -> 11*1622 = 2816= 2816dd

2 -> 2*162 -> 2*1611 = 32= 32dd

A -> 10*16A -> 10*1600 = 10= 10dd

28582858dd

- 0

3/05

/06

13/32

Sistema HexadecimalSistema Hexadecimal

• Conversão Decimal para HexadecimalConversão Decimal para Hexadecimal– Mesma fórmula utilizada na conversão de um número Mesma fórmula utilizada na conversão de um número

decimal para bináriodecimal para binário• dividindo por 16 em vez de 2dividindo por 16 em vez de 2

– Converter 1069Converter 1069dd em hexadecimal em hexadecimal

1069/161069/16 = 66 Resto 13= 66 Resto 13dd = D = Dhh

66/16 = 4 Resto 266/16 = 4 Resto 2dd = 2 = 2hh

4/16 = 0 Resto 44/16 = 0 Resto 4dd = 4 = 4hh

10691069dd = 42D= 42Dhh

- 0

3/05

/06

14/32

Operações Aritméticas: Aritmética Binária Operações Aritméticas: Aritmética Binária

• Adição bináriaAdição binária– Fazem-se as contas coluna a coluna, da direita para a Fazem-se as contas coluna a coluna, da direita para a

esquerda, fazendo o transporte de um (<e vai um>) quando esquerda, fazendo o transporte de um (<e vai um>) quando for o caso for o caso

– Observando-se as seguintes operações básicas:Observando-se as seguintes operações básicas:• 0 + 0 = 00 + 0 = 0• 0 + 1 = 10 + 1 = 1• 1 + 1 = 10 (1 mais 1 é igual a 0 e vai 1)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)1 + 1 + 1 = 11 (1 mais 1 mais 1 é igual a 1 e vai 1)

– ExemplosExemplos

101101+1101+1101

00

11

11

11

001010

1100111001+10011+10011

00

11

00

11

11111010

- 0

3/05

/06

15/32

Operações Aritméticas: Aritmética BináriaOperações Aritméticas: Aritmética Binária

• Subtração bináriaSubtração binária– Como o conjunto de símbolos contém apenas 2 dígitosComo o conjunto de símbolos contém apenas 2 dígitos

• ao se efetuar a subtração parcial entre 2 dígitosao se efetuar a subtração parcial entre 2 dígitos

• se o segundo (diminuidor) exceder o primeiro (diminuendo)se o segundo (diminuidor) exceder o primeiro (diminuendo)– subtrai-se uma unidade ao dígito imediatamente à esquerda no subtrai-se uma unidade ao dígito imediatamente à esquerda no

diminuendo (se existir e o seu valor for 1), convertendo-o a 0diminuendo (se existir e o seu valor for 1), convertendo-o a 0

» substituímos o diminuendo por 10substituímos o diminuendo por 10bb (2 (2dd))

– Se o dígito imediatamente à esquerda for 0Se o dígito imediatamente à esquerda for 0

» procura-se nos dígitos consecutivosprocura-se nos dígitos consecutivos

- 0

3/05

/06

16/32

Operações Aritméticas: Aritmética BináriaOperações Aritméticas: Aritmética Binária

• Subtração bináriaSubtração binária– Exemplos: 11101 – 111Exemplos: 11101 – 111

– ExercícioExercício: 100001-101: 100001-101

1 1 1 0 11 1 1 0 1- 1 1 1- 1 1 1

00

00 22

11

0022

110011

- 0

3/05

/06

17/32

Operações Aritméticas: Aritmética BináriaOperações Aritméticas: Aritmética Binária

• MultiplicaçãoMultiplicação– Semelhante à multiplicação decimalSemelhante à multiplicação decimal

• exceto pelo fato da soma final dos produtos se fazer em binárioexceto pelo fato da soma final dos produtos se fazer em binário

– As seguintes igualdades devem ser respeitadas:As seguintes igualdades devem ser respeitadas:• 0*0=0; 0*1=0; 1*0=0; 1*1=10*0=0; 0*1=0; 1*0=0; 1*1=1

– Exemplos: multiplicar os números 1011 e 1101 Exemplos: multiplicar os números 1011 e 1101

– ExercícioExercício: multiplicar 10101 e 101: multiplicar 10101 e 101

- 0

3/05

/06

18/32

Operações Aritméticas: Aritmética BináriaOperações Aritméticas: Aritmética Binária

• DivisãoDivisão– Pode ser feita de maneira idêntica à divisão decimalPode ser feita de maneira idêntica à divisão decimal

• exceto pelo fato das multiplicações e subtrações internas ao exceto pelo fato das multiplicações e subtrações internas ao processo serem feitas em binárioprocesso serem feitas em binário

- 0

3/05

/06

19/32

Operações Aritméticas: Aritmética BináriaOperações Aritméticas: Aritmética Binária

• DivisãoDivisão

- 0

3/05

/06

20/32

Operações Aritméticas HexadecimalOperações Aritméticas Hexadecimal

• AdiçãoAdição– Exemplo: 8+5Exemplo: 8+5

• em decimal, o valor seria 13em decimal, o valor seria 13

• em hexadecimal, o valor 13 é representado por Dem hexadecimal, o valor 13 é representado por Dhh

– Sempre que o resultado ultrapassar a baseSempre que o resultado ultrapassar a base• subtraímos a base do resultado e “vai-um”subtraímos a base do resultado e “vai-um”

• Exemplo: 19+9Exemplo: 19+9– em decimal, o resultado de 9+9 é 18em decimal, o resultado de 9+9 é 18

– como o valor ultrapassa a base, subtraímos esta do resultado: 18-como o valor ultrapassa a base, subtraímos esta do resultado: 18-16=216=2

– fazendo o transporte para a coluna seguinte obtemos o resultado: fazendo o transporte para a coluna seguinte obtemos o resultado: 2222hh

- 0

3/05

/06

21/32

Operações Aritméticas HexadecimalOperações Aritméticas Hexadecimal

• SubtraçãoSubtração– A partir de um exemplo: 27A partir de um exemplo: 27hh-1E-1Ehh

– Efetuamos a operação de subtração coluna a colunaEfetuamos a operação de subtração coluna a coluna• primeira coluna o diminuidor (E) é superior ao diminuendo (7)primeira coluna o diminuidor (E) é superior ao diminuendo (7)

– então adicionamos a base ao diminuendo, executamos a então adicionamos a base ao diminuendo, executamos a subtração, e há transporte de uma unidade que somamos ao subtração, e há transporte de uma unidade que somamos ao diminuidor da coluna seguintediminuidor da coluna seguinte

2727hh

-1E-1Ehh

11

99hh

11

00

- 0

3/05

/06

22/32

Operações Aritméticas HexadecimalOperações Aritméticas Hexadecimal

• MultiplicaçãoMultiplicação– Esta operação pode fazer-se facilmente por meio da tabela Esta operação pode fazer-se facilmente por meio da tabela

de dupla entradade dupla entrada

- 0

3/05

/06

23/32

Operações Aritméticas HexadecimalOperações Aritméticas Hexadecimal

• DivisãoDivisão– ExemplosExemplos

• 2F2Fhh/12/12hh

- 0

3/05

/06

24/32

Operações LógicasOperações Lógicas

• Operações lógicas com bits Operações lógicas com bits – ANDAND

• operação que aceita dois operandosoperação que aceita dois operandos– operando são binários simples (base 2)operando são binários simples (base 2)

• operação AND éoperação AND é– 0 and 0 = 00 and 0 = 0

– 0 and 1 = 00 and 1 = 0

– 1 and 0 = 01 and 0 = 0

– 1 and 1 = 11 and 1 = 1

• Em português: Em português: – ““se o primeiro operando é 1 e o segundo operando é se o primeiro operando é 1 e o segundo operando é

1, o resultado é 1, senão o resultado é 0”1, o resultado é 1, senão o resultado é 0”

- 0

3/05

/06

25/32

Operações LógicasOperações Lógicas

• Operações lógicas com bits Operações lógicas com bits – ANDAND

• tabela verdadetabela verdade

Op1Op1 Op2Op2 Op1 AND Op2Op1 AND Op2

00 00 00

00 11 00

11 00 00

11 11 11

- 0

3/05

/06

26/32

Operações LógicasOperações Lógicas

• Operações lógicas com bits Operações lógicas com bits – OROR

• operação que aceita dois operandosoperação que aceita dois operandos– operando são binários simples (base 2)operando são binários simples (base 2)

• operação OR éoperação OR é– 0 or 0 = 00 or 0 = 0– 0 or 1 = 10 or 1 = 1– 1 or 0 = 11 or 0 = 1– 1 or 1 = 11 or 1 = 1

• Em português: Em português: – ““se o primeiro operando é 1 ou o segundo operando se o primeiro operando é 1 ou o segundo operando

é 1 (ou os dois), o resultado é 1, senão o resultado é é 1 (ou os dois), o resultado é 1, senão o resultado é 0”0”

• Conhecido com OR-INCLUSIVEConhecido com OR-INCLUSIVE

- 0

3/05

/06

27/32

Operações LógicasOperações Lógicas

• Operações lógicas com bits Operações lógicas com bits – OROR

• tabela verdadetabela verdade

Op1Op1 Op2Op2 Op1 OR Op2Op1 OR Op2

00 00 00

00 11 11

11 00 11

11 11 11

- 0

3/05

/06

28/32

Operações LógicasOperações Lógicas

• Operações lógicas com bits Operações lógicas com bits – XORXOR

• operação que aceita dois operandosoperação que aceita dois operandos– operando são binários simples (base 2)operando são binários simples (base 2)

• operação OR éoperação OR é– 0 xor 0 = 00 xor 0 = 0

– 0 xor 1 = 10 xor 1 = 1

– 1 xor 0 = 11 xor 0 = 1

– 1 xor 1 = 01 xor 1 = 0

• Em português: Em português: – ““Se o primeiro operando ou o segundo operando, Se o primeiro operando ou o segundo operando,

mas não os dois, for 1, o resultado é 1, senão o mas não os dois, for 1, o resultado é 1, senão o resultado é 0resultado é 0””

- 0

3/05

/06

29/32

Operações LógicasOperações Lógicas

• Operações lógicas com bits Operações lógicas com bits – XORXOR

• tabela verdadetabela verdade

Op1Op1 Op2Op2 Op1 XOR Op2Op1 XOR Op2

00 00 00

00 11 11

11 00 11

11 11 00

- 0

3/05

/06

30/32

Operações LógicasOperações Lógicas

• Operações lógicas com bits Operações lógicas com bits – NOTNOT

• operação que aceita um operandooperação que aceita um operando• operando é binário simples (base 2)operando é binário simples (base 2)• operação NOT éoperação NOT é

– not 0 = 1not 0 = 1

– not 1 = 0not 1 = 0

• Em português: Em português: – ““Se o operando for 1, o resultado é 0, senão o Se o operando for 1, o resultado é 0, senão o

resultado é 1resultado é 1””

- 0

3/05

/06

31/32

Operações LógicasOperações Lógicas

• Operações lógicas com bits Operações lógicas com bits – NOTNOT

• tabela verdadetabela verdade

Op1Op1 NOT Op1NOT Op1

00 11

11 00

- 0

3/05

/06

32/32

Operações LógicasOperações Lógicas

• Operações Lógicas com números Operações Lógicas com números – As operações lógicas trabalham apenas com operandos com As operações lógicas trabalham apenas com operandos com

bit únicobit único• Para realizar estas operações sobre um número (8, 16, 32 bits) Para realizar estas operações sobre um número (8, 16, 32 bits)

é necessário realizar a operação bit-a-bité necessário realizar a operação bit-a-bit– Exemplo: operação lógica AND com dois operandos de 8 bits Exemplo: operação lógica AND com dois operandos de 8 bits

1011 01011011 0101AND AND 1110 11101110 1110

1010 01001010 0100– Como as operações lógicas são definidos em termos de Como as operações lógicas são definidos em termos de

valores binários, deve-se converter os números decimais, valores binários, deve-se converter os números decimais, hexadecimais, etc., para números binários antes de realizar hexadecimais, etc., para números binários antes de realizar as operações lógicasas operações lógicas