22
SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração 214-2015 -1- V0beta MÓDULO 1 Sistemas de Numeração 1. Apresentação Duração de Referência: 30 horas Avaliação 2 testes (60%)+ Avaliação contínua (40% ) Este módulo pretende dotar o aluno com conhecimentos sobre a forma como os computadores utilizam valores binários para representar e efetuar operações com números inteiros e fracionários. Esta matéria vai permitir uma melhor compreensão acerca do funcionamento dos componentes eletrónicos constituintes de um computador e das suas principais características. 2. Objetivos de Aprendizagem Conhecer a estrutura de um Sistema de Numeração e os principais Sistemas de Numeração Efetuar a conversão de números entre os vários sistemas de numeração. Efetuar operações aritméticas (adição e subtração) em qualquer base de numeração. Representar números relativos (positivos e negativos) em código de complementos. 3. Âmbito dos Conteúdos 3.1. Estrutura de um sistema de Numeração. Noção de símbolo e noção de número como uma sequência de símbolos, onde os símbolos têm significância posicional. 3.2. Fórmula geral de significância posicional num sistema de base B: N = n ∑ i = 0 ABii 3.3. Principais Sistemas de Numeração utilizados: binário, octal, hexadecimal. 3.4. Conversão de números representados em qualquer base, para a base decimal, usando a fórmula geral de significância posicional. 3.5. Conversão de números em decimal para outras bases de numeração através do método das divisões sucessivas. 3.6. A importância da base binária como um sistema de numeração com dois símbolos 0 e 1, de fácil manipulação no contexto da arquitetura de um computador. 3.7. Operações aritméticas (adição e subtração) em qualquer base (base binária em particular). 3.8. Representação de números relativos (positivos e negativos), usando código de complementos. Adição e subtração de números em código de complementos 3. Bibliografia / Outros Recursos CUESTA, L.; PADILLA, A.; REMIRO, F., Eletrónica Digital. Amadora: McGrawHill, 1994. NUNES, Mário Serafim, Sistemas Digitais, 3ª ed.. Lisboa: Editorial Presença, 1989. RODRIGUES, Pimenta; ARAÚJO, Mário, Projeto de Sistemas Digitais, 2ª ed.. Lisboa: Editorial Presença, sd. TAUB, Herbert, Circuitos Digitais e Microprocessadores. S. Paulo: McGrawHill, 1984. Laboratório de eletrónica (hardware). Retro/Vídeo Projetor. Meios audiovisuais

SDAC Modulo 1 Sistemas Numeracao

  • Upload
    asubida

  • View
    68

  • Download
    22

Embed Size (px)

DESCRIPTION

apontamentos para estudantes

Citation preview

Page 1: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -1- V0beta

MÓDULO 1 Sistemas de Numeração 1. Apresentação

Duração de Referência: 30 horas Avaliação 2 testes (60%)+ Avaliação contínua (40% ) Este módulo pretende dotar o aluno com conhecimentos sobre a forma como os computadores utilizam valores binários para representar e efetuar operações com números inteiros e fracionários. Esta matéria vai permitir uma melhor compreensão acerca do funcionamento dos componentes eletrónicos constituintes de um computador e das suas principais características.

2. Objetivos de Aprendizagem Conhecer a estrutura de um Sistema de Numeração e os principais Sistemas de Numeração Efetuar a conversão de números entre os vários sistemas de numeração. Efetuar operações aritméticas (adição e subtração) em qualquer base de numeração. Representar números relativos (positivos e negativos) em código de complementos.

3. Âmbito dos Conteúdos

3.1. Estrutura de um sistema de Numeração. Noção de símbolo e noção de número como uma sequência de símbolos, onde os símbolos têm significância posicional. 3.2. Fórmula geral de significância posicional num sistema de base B: N = n ∑ i = 0 ABii 3.3. Principais Sistemas de Numeração utilizados: binário, octal, hexadecimal. 3.4. Conversão de números representados em qualquer base, para a base decimal, usando a fórmula geral de significância posicional. 3.5. Conversão de números em decimal para outras bases de numeração através do método das divisões sucessivas. 3.6. A importância da base binária como um sistema de numeração com dois símbolos 0 e 1, de fácil manipulação no contexto da arquitetura de um computador. 3.7. Operações aritméticas (adição e subtração) em qualquer base (base binária em particular). 3.8. Representação de números relativos (positivos e negativos), usando código de complementos. Adição e subtração de números em código de complementos

3. Bibliografia / Outros Recursos

CUESTA, L.; PADILLA, A.; REMIRO, F., Eletrónica Digital. Amadora:

McGrawHill, 1994. NUNES, Mário Serafim, Sistemas Digitais, 3ª ed.. Lisboa:

Editorial Presença, 1989. RODRIGUES, Pimenta; ARAÚJO, Mário, Projeto de

Sistemas Digitais, 2ª ed.. Lisboa: Editorial Presença, sd.

TAUB, Herbert, Circuitos Digitais e Microprocessadores. S. Paulo: McGrawHill,

1984.

Laboratório de eletrónica (hardware).

Retro/Vídeo Projetor.

Meios audiovisuais

Page 2: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -2- V0beta

Introdução às Bases de Numeração

1. Representação numérica em diferentes bases

1.1 Base 10

A representação numérica comum utiliza a base 10. Isso significa que há 10 algarismos (ou

dígitos) diferentes, denotados pelos símbolos 0 a 9.

Usando apenas estes algarismos podemos representar qualquer número. Começando pelos

números mais simples, representáveis apenas por um dígito, temos:

0

1

...

9 10 aqui temos o primeiro acidente de contagem: esgotou-se a capacidade de representação de

números apenas com um dígito - passamos a usar dois dígitos, sendo que o da esquerda tem mais valor pela posição que ocupa - neste caso tem o seu valor multiplicado por 10, ou seja, pelo valor da base de numeração utilizada;

11

12 valor 10+2 - o dígito da esquerda tem o seu valor multiplicado por 10;

...

19

20 mais uma vez esgotaram-se os dígitos na primeira posição: aumenta-se 1 na posição seguinte; já

contamos 2 vezes a base, ou seja, vamos em 2x10; 21

..

25 valor 2x10 + 5 : o dígito da esquerda tem o valor multiplicado por 10;

...

99 este é o maior número com 2 algarismos

100 esgotaram-se agora os dígitos na segunda posição; isso significa que contámos 10 vezes a

base, ou seja 10x10; um dígito na 3ª posição vale a base ao quadrado;

...

317 neste caso, o 3 vale pela base2, o 1 pela base e o 7 pelo seu valor;

...

999 maior número com 3 algarismos

1000 a posição seguinte vale pela base ao cubo, ou seja 103.

1.2 Significado da representação numérica

Em suma, da direita para a esquerda: um algarismo na primeira posição vale por si próprio,

na segunda vale pela base, na terceira pela base ao quadrado, na quarta pela base ao cubo

e assim sucessivamente. Por exemplo: 8317 vale 8x103 + 3x102 + 1x10 + 7

Uma vez que 100 é 1, podemos uniformizar a representação: 8317

vale 8x103 + 3x102 + 1x101 + 7x100

Em concordância com esta notação designamos as posições, da direita para esquerda, por

posição 0, 1, 2 e assim sucessivamente. E designamos a potência respetiva por peso. Assim,

dizemos que um algarismo na posição 0 tem peso 100, ou seja 1; na posição 1 tem peso 101,

ou seja 10; na posição 2 tem peso 102 ou seja 100, etc.

Genericamente, um dígito di na posição i tem peso 10i, ou seja, vale

dix10i

Page 3: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -3- V0beta

Em geral, dado um número com os dígitos:

dn dn-1 d2 d1 d0

o seu valor numérico

é:

dn x10n + dn-1 x10n-1 + ... + d2 x102 + d1 x101 + d0 x100

1.3 Contar em base 8 (octal)

O que vimos para a base 10 generaliza-se facilmente para outras bases.

Seja por exemplo a base 8. Em vez de 10 temos agora 8 dígitos - e para não inventar o que

já está inventado, valos representá-los pelos símbolos 0 a 7.

O processo de contagem é em tudo semelhante ao usado em base 10. Começamos com os

números representáveis apenas com um algarismo, que agora vão apenas até 7:

0

1

...

7 último número representável apenas com um algarismo;

10 aqui temos o primeiro acidente de contagem; esgotada a capacidade de representação com um

dígito, passamos a usar dois; o dígito da esquerda vale 1xbase; (em decimal seria 1x8)

11

12 número 10+2 em octal; (em decimal seria 1x8+2 ou seja o número 10)

...

17

20 mais uma vez esgotaram-se os dígitos na primeira posição: aumenta-se 1 na posição seguinte; já

contamos 2 vezes a base, ou seja, vamos em 2xbase (em decimal seria 2x8); 21

...

77 este é o maior número com 2 algarismos em base 8;

100 contámos base * base vezes; o dígito 1 na terceira posição vale a base2 (em decimal seria 2x82);

101

...

777 maior número com 3 algarismos, na base 8;

1000

1.4 Contar em Base 16 (hexadecimal)

Seja agora a base 16. Em base 16 deve haver 16 algarismos; vamos representar os

primeiros 10 da maneira habitual, de 0 a 9 e a partir daí vamos usar letras: A, B, C; D E e F.

De resto, o processo de contagem é semelhante, sendo que agora os números

representáveis com um dígito são vão até F (15 em decimal):

0

1

...

Page 4: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -4- V0beta

9

A nada de especial, aqui; passamos para o 10º dígito, representado pela letra A;

B

C

D

E

F

maior valor representável com um algarismo (em decimal seria o número 15);

10

11

esgotaram-se os dígitos, logo esgotou-se a capacidade de representação de números só com

um dígito; passamos a usar dois; o 1 da esquerda vale a base (em decimal seria o número 16);

12

...

19

1A

...

1B

número 10 + 2, ou seja 1xbase + 2 (em decimal seria 16 + 2);

20

...

99

contámos duas vezes o número de dígitos; vamos em 2xbase (em decimal seria 2x16);

9A

9B

...

9F

nada de especial: a seguir ao algarismo 9 vem o algarismo A;

A0

A1

...

FE

nada de especial: a seguir ao algarismo 9 vem o algarismo A;

FF

maior número com dois dígitos em base 16;

100 contámos (base X base) vezes; vamos em base2 (seria 162 em decimal);

...

FFF maior número com 3 algarismos em base 16;

1000

1.5 Contar em base 2 ("binário")

Especialmente importante para nós, nesta cadeira, é a base 2, que tem apenas dois dígitos:

0 e 1. O processo de contagem é idêntico ao praticado em qualquer outra base. É claro a

exiguidade da base leva a que, rapidamente, se gerem sequências com muitos dígitos:

0

1 maior número com 1 dígito;

10 esgotada a capacidade de representação com um dígito, passamos a usar dois dígitos; o

dígito da direita vale 1 vezes a base ou seja 2;

11 número maior com dois dígitos;

100 passamos a três dígitos; o da esquerda vale base2 (22); 101

110

111 maior número com 3 algarismos;

1000

1.6 Generalização da representação numérica

Page 5: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -5- V0beta

O conceito de representação numérica apresentado no ponto 1.1 para a base decimal

generaliza-se facilmente para outras bases.

Em qualquer base um número representa-se como uma sequência de dígitos. Sendo B a

base, um dígito di na posição i tem peso Bi ou seja vale dixBi

Em geral, dado um número com os dígitos:

dn dn-1 d2 d1 d0

o seu valor numérico, dada a base B,

é:

dn xBn + dn-1 xBn-1 + ... + d2 xB2 + d1 xB1 + d0 xB0 (1)

Para clarificar a representação e evitar situações de ambiguidade, explicitamos a base,

usando a seguinte notação:

(312)10 - a sequência de dígitos 312 na base 10 (312)8

- a sequência de dígitos 312 na base 8

(312)16 - a sequência de dígitos 312 na base 16

O valor respetivo de cada um, em decimal, é o que resulta da expressão anterior. Assim:

(312)10 = 3x102 + 1x101 + 2x100

(312)8 = 3x82 + 1x81 + 2x80

(312)16 = 3x162 + 1x161 + 2x160

Obviamente os três números representados são todos diferente. Seria disparate dizer, por

exemplo, "o número 312 em base 10 é o mesmo número 312 em base 8". Todas as

sequências de dígitos iguais em bases diferentes representam números diferentes (exceto),

obviamente as que têm apenas um dígito). Pode confirmar, por exemplo, que:

(312)10 = (470)8 = (138)16

(202)10 = (312)8 = (CA)16

(786)10 = (1442)8=(312)16

1.7 A parte fracionária

A representação estende-se facilmente para a parte fracionária. Dada uma sequência de

dígitos na base B

dn dn-1 ... d2 d1 d0 . d-1 d-2 ... d-m

em que o ponto separa a parte inteira e a parte fracionária, o valor associado é:

dnBn + dn-1Bn-1 + ... + d2B2 + d1B1 + d0B0 + d-1B-1 + d-2B-2 + ...

Por exemplo, a sequência 42.57 em decimal vale:

4x101 + 2x100 + 5x10-1 + 7x10-2

Em base 10, o dígito à direita do ponto tem peso 10-1, ou seja uma décima; o dígito seguinte

tem peso 10-2, ou seja uma centésima; e assim sucessivamente. Genericamente, o dígito de

posição i à direita do ponto (dita posição -i) tem peso base-i.

Page 6: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -6- V0beta

Exemplo:

(42.57)10 = 4x101 + 2x100 + 5x10-1 + 7x10-2

(42.57)8 = 4x81 + 2x80 + 5x8-1 + 7x8-2

(4C.A7)16 = 4x161 + 12x160 + 10x16-1 + 7x16-2

(10.01)2 = 2 + 1/4

2. Operações

2.1 Soma

Contar é basicamente tudo o que precisamos para fazer as operações elementares de somar

e subtrair. Vamos, agora, rever os procedimentos que usamos para a realização destas

operações.

Exemplo (em base 10), da direita para a esquerda: - ao primeiro algarismo, 3, juntamos 2 (a partir de 3 contamos mais 2);

- a partir de 2 contamos mais 5; - a partir de 8 contamos 6, para dar 14; aqui há um incidente: a contagem ultrapassa 10, ou seja, a base; deixamos como resultado o algarismo das unidades 4 e juntamos os restantes 10 somando 1 na posição seguinte; dizemos, então, que há 1 de transporte (ou, informalmente, e vai um);

O mecanismo para somar é exatamente igual em qualquer outra base. Vejamos um exemplo

em base 8:

Exemplo (em base 8), da direita para a esquerda: - 3 e 2 dá 5;

- 6 e 5 dá 13 (a partir de 6 contamos 5 vezes, ou seja: 7 10 11 12 13 ) como

habitualmente, deixamos o algarismo 3 no resultado e juntamos o 10

fazendo o transporte de 1 para a posição seguinte;

- ...

Outro exemplo, ainda em base 8:

- 3 mais 2 dá 5;

- 2 mais 6 (ou, se preferir, 6 mais 2) dá 10; ou seja dá 0 e vai 1;

- 1 mais 6 mais 5 dá 14, ou seja dá 4 e vai 1;

- ...

Outro exemplo, agora em base 16:

- 2 mais 3 dá 5

- 2 mais 6 dá 8

- 6 mais 5 dá B (ou seja, contando a partir de 6: 7 8 9 A B )

- ...

2 1 8 2 3

+ 2 6 5 2

2 4 4 7 5

2 1 6 3

+ 2 5 2

2 4 3 5

2 1 6 2 3

+ 2 5 6 2

2 4 4 0 5

2 1 6 2 3

+ 2 5 6 2

2 3 B 8 5

Page 7: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -7- V0beta

Outro exemplo, em base 16

- 3 + D dá 10 ( D+3 => E F 10 )

- 1 + A + 6 dá 11 ( B+ 6 => C D E F 10 11)

- 1 + 6 + 5 dá C

- F + 2 dá 11

- ...

2.1 Subtração

O mecanismos que usamos vulgarmente para fazer a subtração aplicam-se também, com os

mesmos princípios, quer à base 10 quer às outras bases.

Seja uma operação elementar, por exemplo 7-2. A maneira mais básica de fazer a operação

é mais uma vez contar - neste caso contar de baixo (i.e. do subtrativo) para cima (i.e. para o

aditivo). O número de vezes que contarmos é, justamente, a diferença.

Para fazer a subtração de números com mais algarismos generalizamos o processo

seguindo da direita para a esquerda. Em cada posição fazemos a diferença entre o algarismo

de cima e o de baixo.

Exemplo: neste caso faríamos:

- 2 para 7: conta 3 4 5 6 7, ou seja 5 vezes; - 6 para 3 conta 7 vezes e

vai um de transporte...

- o transporte soma ao 7, assim fazemos 8 para 9...

- ...

Recorde que, no caso da subtração, o mecanismo é juntar o transporte ao algarismo de

baixo. Ao fazer 6 para 3 estamos na realidade a fazer a diferença para 13 - por consequência

temos que subtrair 10 na posição seguinte. Podemos fazer isso retirando 1 ao algarismo de

cima ou, como fazemos habitualmente, adicionando 1 ao de baixo.

Salienta-se ainda a situação de transporte evidenciada no seguinte exemplo:

Neste caso ao fazer 7 para 2 há um transporte. O transporte junta-se ao

9 para fazer 10 para 13, havendo por isso um novo transporte.

Note bem que apesar de nesta situação pensarmos 0 para 3 e realidade

é que estamos a fazer 10 para 13; não nos podemos esquecer deste

transporte.

Seja agora o seguinte exemplo em base 8

- 2 para 7 dá 5

- 6 para 3 dá 5 (conta 7 10 11 12 13, ou seja 5 vezes ) e vai um

- (4+1) para 4 dá 7 (conta 6 7 10 11 12 13 14, i.e. 7 vezes) e vai um

- 1 para 2 dá 1

Um outro exemplo em base 8

- 2 para 0 dá 6 (conta 3 4 5 6 7 10) e vai um;

- 7 + 1 dá 10; 0 para 3 dá 3, e vai um;

- 5 e 1 dá 6; 6 para 4 dá 6 e vai um;

2 F 6 A 3

+ 2 5 6 D

3 1 C 1 0

2 9 3 7 - 7 6 2 2 1 7 5

2 9 3 2 - 7 9 7 2 1 3 5

2 4 3 7 - 4 6 2 1 7 5 5

2 4 3 0 - 5 7 2 1 6 3 6

Page 8: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -8- V0beta

Um exemplo em base 16:

- A para 2 dá 8 (conta B C D E F 10 11 12 ) e vai um

- 7+1 dá 8; 8 para C dá 4;

- 5 para B dá 6;

- 0 para C dá C;

Outro exemplo em base 16

2.2 Somar e subtrair em binário

As operações em binário são em tudo semelhantes. A exiguidade do número de dígitos faz

com que as operações sejam muito estilizadas.

Exemplo:

0+1 dá 1;

1+1 dá 0 e vai 1; 1+1+1 dá 1 e vai 1;

...

Na prática tudo se resume a saber somar dois dígitos ou, no

máximo, três, quando há transporte. As possibilidade de soma de dois dígitos são apenas:

0+ 0 que dá 0

1+ 0 que dá 1

1+ 1 que dá 0 e vai 1

Na soma de três dígitos há apenas uma possibilidade adicional:

1+1+1 que dá 1 e vai 1

Na subtração as possibilidades também são muito limitadas.

Exemplo:

1 para 1 dá 0;

1 para 0 dá 1, e vai um;

1 e 1 dá 0 (ou seja 10) para 1 (ou seja 11) dá 1 e vai um;

1 e 0 dá 1 para 1 dá 0;

...

3. Conversão "base" => decimal

Consideremos agora o problema da conversão de um número de uma base qualquer para

decimal, ou seja, o problema de dado um número numa base B obter a representação do

mesmo número em base 10.

Para resolver este problema, basta atender à forma geral de representação indicada no

ponto 1.6. Dado uma sequência de algarismos

dn dn-1 ... d2 d1 d0 . d-1 d-2 ... d-m

numa base B o respetivo valor numérico é:

anBn + an-1Bn-1 + ... + a2B2 + a1B1 + a0B0 + a-1B-1 + a-2B-2 + ...

C B C 2 - 5 7 A C 6 4 8

1 2 3 4 - 5 7 A C B A

1 0 1 1 0

+ 1 0 1 1 1

1 0 1 1 0 1

1 0 1 1 0 1

- 1 0 1 1 1

1 0 1 1 0

Page 9: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -9- V0beta

A fórmula genérica de representação de um número em formato posicional é então:

Número = ∑ai Bi para todo o i desde +n a -n

i

Para converter um número para base 10 basta calcular esta expressão. Assim, por exemplo:

4. Conversão decimal => "base"

Vejamos agora o problema da conversão de decimal para uma outra base. Ou seja o

problema de dado um número em Base 10 encontrar a representação do mesmo número

noutra base qualquer.

4.1 Parte inteira do número

Vamos considerar, primeiro, apenas a parte inteira. Para converter um número para base B

aplica-se o seguinte método:

- dividir o número, sucessivamente, pela Base até obter o quociente 0;

- o resultante obtém-se juntando, por ordem inversa, os restos dessas divisões sucessivas;

Note que, ao fazer uma divisão pela Base o resto é necessariamente um número menor que a base -ou seja este resto é um algarismo da base. Deste modo, juntando os restos sucessivos estamos a formar um número válido na Base.

Exemplos:

1) - Converter 12(10) para binário

Dado um número decimal, para convertê-lo em binário, basta dividi-lo

sucessivamente por 2, anotando o resto da divisão inteira (da direita para a esquerda):

12(10) = 1100(2)

2) - Representar (1003)10 em octal

1003 : 8 = 125 * 8 + 3

(312)10 = 3x102 + 1x101 + 2x100 = 3x100 + 10 + 2 = 312

(312)8 = 3x82 + 1x81 + 2x80 = 3x46 + 8 + 2 = 148

(312)16 = 3x162 + 1x161 + 2x160 = 3x256 + 16 + 1 = 785

(1001) 2 = 1x23 + 0x22 + 0x21 + 1x20

Exercício de aplicação

= 8+1 = 9

(4.02)8 = 4x80 + 0x8-1 + 2x8-2 = ...

(A.BC)16= 10 + 11x16-1 + 12x16-2 = ...

(101.101)2 = 4+1+1/2+1/16 = ...

12 2 0 6 2

0 3 2 1 1

1003

2

8 3 125 8

5 15 8 7 1

Page 10: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -10- V0beta

125 : 8 = 15 * 8 + 5

15 : 8 = 1 * 8 + 7

1 : 8 = 0 * 8 + 1

o resultado é (1753)8.

3) – Converter 1003 para hexadecimal

1003 : 16 = 62 * 16 + 11 (=B)

62 : 16 = 3 * 16 + 14 (=E)

3 : 16 = 0 * 16 + 3

o resultado é (3EB)16.

4) Converter número 1003 em binário

1003 : 2 = 501 * 2 + 1

501 : 2 = 250 * 2 + 1 250 : 2 = 125 * 2

+ 0

... o resultado é ( ......

011)2.

4.1.1 - Uso da máquina de calcular

Quando se pretende usar o método dos restos das divisões sucessivas, fazendo as contas

de dividir com a máquina de calcular, não nos podemos esquecer que a maioria dos

resultados (quocientes) aparece com parte inteira e parte decimal.

- A parte inteira segue para próxima divisão se for maior do que a base ou fica como

algarismo de maior peso do número final.

- A parte decimal deve ser multiplicada pela base para se obter o algarismo inteiro do resto

da divisão.

Exemplo:

Dado 300 (10) converter para a base 8.

Usando a máquina de calcular

- Primeira divisão 300:8= 37, 5

A parte inteira 37 passa para a próxima divisão e a parte decimal 0,5*8=4 é o primeiro resto

- Segunda divisão 37:8=4,625

As divisões param aqui, porque a parte inteira é menor do que a base. O último resto é

0,625*8 = 5 .O último quociente é 4.

Assim 300 (10) = 454(8)

4.2 Parte fracionária do número

Vejamos agora a parte fracionária. Aqui o método consiste em multiplicar o número pela

base e recolher parte inteira do número resultante da multiplicação. Mais uma vez,

repare que multiplicando um número só com parte fracionária (ie com parte inteira 0) pela

base B se obtém um número menor que B - ou seja um algarismo da base.

Por exemplo: converter (0.6328125) para octal

0.6328125 * 8 = 5,0625

0.0625 * 8 = 0,5

0,5 * 8 = 4,0 o resultado é

(0.504)8.

1003

2

16 11 62 16 14

5

3

Page 11: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

214-2015 -11- V0beta

Assim: em cada passo multiplica-se o número pela base. A parte inteira do resultado dá um

algarismo do número. Com a parte fracionária do resultado repete-se o procedimento.

Eventualmente, como acontece neste exemplo, obtemos um resultado com parte

fracionária 0 e o processo termina.

Nestas condições obtemos uma conversão exata - um número na base de conversão

exatamente igual ao original.

Mas nem sempre o processo corre tão bem. Vejamos estas duas conversões de um número

decimal para binário:

Exemplo: converter: converter (0.125)10 para binário

0.125 * 2 = 0.250

0.250 * 2 = 0.5

0.5 * 2 = 1.0

resultado (0.125) 10 = (0.001) 2.

Exemplo: converter (0.2) 10 para binário

0.2 * 2 = 0.4

0.4 * 2 = 0.8

0.8 * 2 = 1.6

0.6 * 2 = 0.2

0.2 * 2 = 0.4

...

Neste caso o processo não termina. Aliás, podemos até concluir que entra num padrão de

repetição, originando uma "dízima periódica infinita".

Nestas condições o número decimal original não pode ser representado com exatidão na

base 2. Eventualmente paramos e ficamos com uma representação aproximada. Por

exemplo, usando um máximo de 20 dígitos na parte fracionária, o resultado aproximado

seria:

(0.0010 0010 0010 0010 001) 2

4.3 Síntese sobre conversões

Está agora reunido o conjunto de instrumentos que vamos usar para conversão entre bases.

Para converter de uma qualquer base para decimal, utiliza-se a expressão geral indicada no

ponto 3.

Para converter de decimal para uma outra base B usamos o método de divisões sucessivas

apresentado no ponto 4.1.

Se o número tiver parte fracionária, fazemos a conversão separada da parte inteira e da

parte fracionária. A esta última aplicamos o método de multiplicações sucessivas

apresentado no ponto 4.2, tendo em conta que, neste caso, poderá não ser possível obter

uma conversão exata.

Finalmente, se o problema for converter entre duas bases B1 e B1 ambas diferentes da base

10, podemos:

1º) converter de B1 para base 10 2º)

converter da base 10 para B2.

Page 12: SDAC Modulo 1 Sistemas Numeracao

JRG, www.iscte.pt/AC -12- T001-Bases-v001b

5. Bases "binárias"

5.1 Binário

Tudo o que se disse anteriormente é válido para binário como para qualquer outra base. Mas

em binário, havendo apenas dois dígitos, as expressões tomam em geral formas mais

simplificadas que permitem de alguma forma agilizar os processos de raciocínio.

Seja, por exemplo, a conversão de um número binário para decimal.

(101 1001)2 = 1x26 + 0x25 + 1x24 1x23 + 0x22 + 0x21 + 1x20

As potências de 2 multiplicam por 0 ou por 1 - no primeiro caso para dar 0: no segundo caso

para dar a própria potência de 2. Assim, podemos escrever de uma forma mais simplificada:

(101 1001)2 = 26 + 24 + 23 + 20

esta expressão acaba por ter uma leitura muito direta: o que interessa são os 1's do

número binário; o valor decimal é o que resulta das soma das potências de 2

correspondentes aos 1 do número binário.

Para este e para muitos outro efeitos convém por vezes ter presente os

valores das potências de 2. Vale a pena decorar estes valores pelo

menos até 210.

Podemos assim imaginar um número binário numa grelha onde os 1

presentes têm o valor da potência de 2 correspondente à posição onde

se encontram

Posição

Peso

Considerando um número neste grelha imaginária, o seu valor é o que resulta da soma dos

1's que o número contém. Por exemplo:

= 28 + 26 + 23 + 22= 256 + 64 + 8 + 4

5.2 Conversão decimal binário - método das subtrações

O mesmo tipo de modelo poderia ser usado para converter de decimal para binário. Trata-se,

afinal de contas, de colocar 1's na grelha até que a "soma" forme o número pretendido.

Seja, por exemplo, o número 300. É claro que seria excessivo colocar um 1 na posição 29

(512) ou mais para esquerda - isso faria desde logo o número maior que 512. Correto é

colocar um 1 no posição 28(256), tendo em vista formar um número maior que 256 (e menor

que 512).

20 1

21 2

22 4

23 8

24 16

25 32

26 64

27 128

28 256

29 512

210

1024

10 9 8 7 6 5 4 3 2 1 0

1024 512 256 128 64 32 16 8 4 2 1

1 0 1 0 0 1 1 0 0

Page 13: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

2014-2015-2016 -13- V01beta

Tendo colocado o primeiro 1 na posição de valor 256, falta obter os 1´s respeitantes ao resto

do número, ou seja 44 (300-256). Aplicando o mesmo raciocínio, colocamos um 1 na posição

26(32) ficando a sobrar 12. E assim sucessivamente.

A este procedimento de conversão de decimal para binário chamamos método das

subtrações. Em suma o processo consiste em:

- decompor o número da soma de uma potência de 2 com outro fator;

- colocar 1 na posição correspondente à potência de 2 obtida;

- repetir o procedimento para a diferença;

Exemplo: converter 300

300 = 256 + 44 -> 28

44 = 32 + 12 -> 25

12 = 8 + 4 -> 23

4 = 4 + 0 -> 22

resultado (1 0010 1100)2.

5.3 Octal

A base fundamental para a computação digital é obviamente a base 2. As outras bases de

trabalho importantes são a base 8 ("octal") e a base16 ("hexadecimal") - ambas, elas

próprias, potências de 2.

Acontece que há uma relação muito simples entre a representação de um número em binário

e a representação do mesmo número em octal ou hexadecimal (ou, em geral, numa qualquer

outra base que seja potência de 2). De certa forma a representação nestas bases pode ser

vista como uma forma compacta de representação em binário e este é realmente o seu

principal interesse.

A relação de octal para binário é de um para três dígitos. Para converter um número de octal

para binário substitui-se cada dígito pela respetiva representação em binário, usado três bits.

Ao contrário, para converter um número de binário em octal, substitui-se cada grupo de 3 bits

por um algarismo octal.

Para estas conversões convém decorar a seguinte tabela que lista os números binários de 0

a 7 (representados em três bits).

Para "decorar" a tabela basta ter presente a grelha de três bits.

9 8 7 6 5 4 3 2 1 0

1 1 1 1

Page 14: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

2014-2015-2016 -14- V01beta

Por exemplo:

5 é 4+1 ou seja 101

6 é 4+2 ou seja 110

Usando esta tabela podemos facilmente converter um número de octal para binário:

(163)8 = (001 110 011)2 = ( 1 110 011)2

(32.04)8 = ( 011 010 . 000 100 ) 2 = ( 11 010 . 000 1 ) 2

Igualmente podemos fazer as conversões contrárias, se necessário juntando 0s à esquerda

da parte inteira ou à direita da parte fracionária:

( 11001)2 = ( 011 001)2 = (31) 8

(11011.01101) 2 = ( 011 011.011 010) 2= (33.32)8

5.3 Hexadecimal

O interesse da base 16 (hexadecimal) é semelhante ao do octal. É uma representação

compacta de binário em que a cada dígito hexadecimnal correspondem 4 dígitos binários.

Para fazer a correspondência convém decorar a seguinte tabela.

Para "decorar" a tabela basta ter presente a grelha de colocação,

agora com 4 bits.

9 = 8 + 1 => 1001

12 = 8+4 => 1100

13 = 8 + 4 + 1 => 1101

Com base nestas tabelas podemos facilmente converter números de

hexadecimal para binário. Exemplo:

( 3A.0E ) 16 = ( 0011 1010 . 0000 1110) 2 = ( 11 1010 . 0000 111) 2

5.4 Conversão expedita octal <=> hexadecimal

Para converter rapidamente entre octal e hexadecimal o mais fácil é usar a conversão

intermédia para binário.

Assim, por exemplo para converter um número de hexadecimal para octal pode:

0 000

1 001

2 010

3 011

4 100

5 101

6 110

7 111

4 2 1

1 1

1 1

0 0 0000

1 1 0001

2 2 0010

3 3 0011

4 4 0100

5 5 0101

6 6 0110

7 7 0111 8 8 1000

9 9 1001

10 A 1010

11 B 1011

12 C 1100

13 D 1101

14 E 1110

15 F 1111

8 4 2 1

Exemplo

1

1

1 1

1 1 1

Page 15: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

2014-2015-2016 -15- V01beta

1º) converter para binário, fazendo corresponder 3 dígitos binário a cada dígito octal; 2º)

reagrupar em grupos de 4 dígitos, se necessário acrescentando 0 à esquerda da parte

inteira ou à direita da parte fracionária;

3º) converter em hexadecimal, fazendo corresponder um dígito hexadecimal a cada grupo de

4 dígitos binário

Exemplo:

( 1A.0E ) 16 = ( 0001 1010 . 0000 1110) 2 = ( 011 010 . 000 011 100) 2= (32.034) 8

5.5 Outras considerações

Muitas vezes no Computador os bits aparecem em grupos ou palavras. Por exemplo, falamos numa máquina de 32 bits porque determinados elementos fundamentais da arquitetura da máquina e das operações nela realizadas ocorrem em blocos de 32 bits.

Seja, por exemplo, uma palavra de 4 bits. Com 4 bits é possível fazer 24 combinações

diferentes, desde 0000 a 1111. A primeira corresponde ao número 0 e a última corresponde

ao número 15 - o maior número inteiro que é possível representar com 4 bits

Em geral, com N bits:

- há 2N combinações diferentes;

- o maior número (inteiro sem sinal) representável é 2N-1.

O número seguinte é 2N e tem N+1 bits.

Uma sequência de 8 bits é vulgarmente designada por byte. Com um byte há 28 ou seja 256

combinações diferentes. O maior número 1111 1111 é 255 (FF em hexadecimal, 377 em

octal).

O número 210, 1024, é vulgarmente designada por 1k. Muitas vezes relaciona-se 1k com 10

bits, na medida em que com 10 bits podem-se fazer as tais 210 ou seja 1024 combinações.

Com 11 bits falamos em 2k e com 12 bits em 4k, ou seja:

211 = 2 x 210 = 2k

212 = 22 x 210 = 4k

Da mesma forma relaciona-se 1 Mega com 20 bits e 1 Giga com 30 bits:

1M = 220 ; 1G = 230 ; 1T=240 --40 bits

6. Representação de números (inteiros) em binário

6.2 Número e sinal

Toda a informação é representa no computador em 0s e 1s. No caso dos números inteiros

uma forma natural de representação é escrevê-los em binário.

Por exemplo: suponha que temos um computador onde os números são representados em

palavras de 8 bits. Usando uma destas palavras podemos representar números inteiros

(positivos) de 0 a 255 em binário. Se não chegar, podemos usar duas palavras para

representar cada número; sendo assim, os números já poderão ir de 0 a 216-1.

Por outro lado pode ser necessário representar números positivos e negativos. Nesse caso o

plano pode ser o seguinte: usar um bit para o sinal e os restantes para a magnitude.

Page 16: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

2014-2015-2016 -16- V01beta

Seja por exemplo uma palavra com 8 bits. Podíamos usar o 8º bit para sinal, representando,

por exemplo os positivos com 0 e os negativos com 1. Assim, por exemplo

0000 1100 seria o +12

1000 1100 seria o -12

Os números representáveis seriam de + 27 ou seja + 127. O maior (mais positivo) seria:

0111 1111

e o menor (mais negativo) seria

1111 1111

O número 0 teria duas representações:

0000 0000 digamos o +0 1000

0000 digamos o - 0.

6.3 Representação em complemento

Uma alternativa mais interessante ao modelo anterior é a representação em complemento.

6.3.1 Complemento para 1

Definição: o complemento para 1 de um número de N bits é a diferença do número para 2N-1.

Ou seja, dado um número B de N bits seu complemento para 1 é, por definição:

(2N-1) - B.

Exemplo: calcular o complemento para 1 do número de 4 bits 0110

Faz-se a diferença para 24-1 ou seja, faz-se

1111 - 0110 =1001

A natureza da operação, em que fazemos a diferença para um número composto só por 1s,

sugere a seguinte:

Regra prática: para obter o complemento para 1 basta trocar cada um dos bits do número.

6.4.2 Complemento para 2

O complemento para 1 de um número de N bits é a diferença do número para 2N. Ou seja,

dado um número B de N bits o seu complemento para 2 é, por definição:

2N - B.

Exemplo: calcular o complemento para 1 do número de 4 bits 0110

Faz-se a diferença para 24 ou seja, faz-se

10000 - 0110 = 1010

Também aqui existe uma regra prática, ligeiramente mais complicada:

Regra prática: para fazer o complemento para 2 procede-se da direita para a esquerda e:

- mantém-se o número original até aparecer o primeiro 1

- a partir daí troca-se cada um dos bits;

Como é claro, o complemento para 1 é igual ao complemento para 2 mais 1. Se preferir pode

também fazer o complemento para 2 aplicando a seguinte regras:

1 0 0 0 0

- 0 1 1 0

1 0 1 0

Page 17: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

2014-2015-2016 -17- V01beta

- 1º) trocar todos os bits (complemento para 1)

- 2º) somar 1

6.4.3 Representação em complemento

Muitas vezes os números negativos são representados em complemento. Assim, por exemplo, se houver 8 bits representam-se os números positivos da maneira normal e os negativos em complemento.

Vamos exemplificar, com 4 bits. Os números positivos são

representados da maneira habitual. Para os negativos é feito o

complemento para 2. Desta forma obteremos a representação indicada

na tabela-

Exemplo: o -5 é representado pelo complemento para 2 de 5, ou seja

0101 -> 1011

O interesse desta representação é que ela permite um tratamento muito

uniforme dos números negativos.

Imagine, por exemplo, que queríamos fazer a soma de dois números

com sinal. Dependendo do sinal a soma podia, na realidade, ser uma

subtração. Por exemplo, para fazer 7+(-5) teria que fazer 7-5. A

representação em complemento para dois resolve a questão de forma

simples: basta somar.

Exemplo: 7 + (-5)

0 1 1 1 <- 7

+ 1 0 1 1 <- -5

1 0 0 1 0 <- 2

fazendo a soma e descartando o bit de excesso obtemos, justamente, 2.

Aliás o mesmo bom comportamento acontece nestes outros casos:

Exemplo: 5 - 7 , ou seja, 5 + (-7), dá -2 (representado em complemento).

0 1 0 1 <- 5

+ 1 0 0 1 <- -7

0 1 1 1 0 <- -2

As contas anteriores justificam-se, também, algebricamente, sendo importante nalguns casos

a questão de descartar o bit de excesso - em particular nos casos em que esse bit é 1.

Seja por exemplo a diferença de dois números positivos A e B. Neste caso em vez da

diferença A-B podemos fazer a soma com o complemento ou seja A+(2N-B). Isto dá A-B+2N

que á quase o mesmo resultado. Nesta situação ao descartar o bit de excesso estamos

justamente a subtrair 2N. Assim, obtemos A+(2N-B) - 2N que é exatamente A-B.

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111 -8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

Page 18: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

2014-2015-2016 -18- V01beta

0 1 1 1 <- 7 A

+ 1 0 1 1 <- -5 24-B

1 0 0 1 0 <- 2 A+(24-B)-24 (24 seria o valor do bit de excesso descartado)

Fica como exercício validar o mesmo raciocínio noutras circunstâncias. Por exemplo:

3-(-2) = 5 fazemos a soma com o complemento de -2 ou seja fazemos:

A + ( 2N- ( 2N-B) ) = A+B

3-5=-2 fazemos a soma com o complemento de 5, ou seja fazemos:

A + ( 2N-B) = 2N- ( A-B)

obtendo o resultado em complemento;

-2-3=-5 fazemos a soma do complemento de ambos, ou seja fazemos

( 2N-A)+( 2N-B) - 2N (por haver excesso)

obtendo o resultado em complemento;

6.4.4 Overflow

Seja como for, a capacidade de representação dos número em binário é sempre limitada.

Isso quer dizer que podemos fazer operações comuns (designadamente somas) de números

válidos que dariam como resultado números já não representáveis.

Por exemplo, se tivermos 8 bits e números sem sinal o maior número representável é 255.

Somando 140 + 140 obteríamos 280 que já não representável - seriam precisos 9 bits. Nesta

situação o resultado efetivo da operação (8 bits) seria 24.

1 0 0 0 1 1 0 0

+ 1 0 0 0 1 1 0 0

1 0 0 0 1 1 0 0 0

Nestas circunstâncias em que operando dois números válidos se obtém um número não

representável diz-se que estamos numa situação de overflow. Neste caso a situação é fácil

de reconhecer: há overflow se o bit de excesso der 1.

Tratando-se de números com sinal o overflow pode acontecer em duas situações: fazendo

uma operação que daria um número positivo maior do que o maior número positivo

representável; ou fazendo operação que daria um número negativo menor do que o menor

número positivo representável.

Seja de novo a situação com números de 4 bits.

O primeiro caso é protagonizado por uma soma de números positivos cujo resultado daria maior do que 7 (e que seria interpretável como número negativo !).

0 1 0 1 <- 5

+ 0 1 0 1 <- 4

0 1 1 1 0 <- -2

Page 19: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

2014-2015-2016 -19- V01beta

O segundo caso é protagonizado pela soma de dois números negativos cujo

resultado seria menor que -8 (e que seria interpretável como número positivo

!).

7. Representação de caracteres

7.1 Código ASCII

Nos computadores digitais o texto é também, naturalmente, representado em bits. A

estratégia neste caso é codificar cada um dos caracteres que podem compor o texto, ou seja,

representar cada caracter por uma sequência de bits única e distinta.

A codificação clássica para este efeito é a que consta da tabela designada por código ASCII.

O código ASCII original usa 7 bits para representar cada caracter.

Genericamente, um texto é uma sequência de caracteres. Por exemplo, o texto representado

na figura é constituído pela seguinte sequência de caracteres:

letra O letra l

letra a

um caracter de mudança de linha

letra M letra u

...

Usando o código ASCII cada um destes bits seria representado por 7 bits. De acordo com a

Tabela este texto poderia ser representado pela sequência de bits: 100 1111

110 1100

110 0001

000 1010

110 1101

...

7.2 Particularidades importantes

O código ASCII tem algumas características importantes que interessa saber e que aliás têm

um papel essencial no processamento de caracteres.

Note para começar que os primeiros caracteres são especiais - correspondem a caracteres

de controlo, sem representação visível. O termo "de controlo" significa que o objeto que trata

o caracter o interpreta como um "comando" e não como um símbolo para "escrever". Alguns

destes caracteres são conhecidos: por exemplo o caracter 7 é o bell (campainha); quando

recebido por um terminal deverá originar um som. Os caracteres 10 e 13 são usados para

controlar as mudanças de linha. Por exemplo, uma impressora ao receber um caracter CR

(000 1101) deve "voltar ao início da linha" e ao receber o caracter LF (000 1010) deve

"mudar de linha".

Estes mesmos caracteres são, em muitas circunstâncias, usados nos ficheiros de texto para assinalar as mudanças de linha. Os detalhes dependem do editor de texto e do sistema operativo. Por exemplo, num comum ficheiro de texto em Unix a mudança de linha é assinalada pelo caracter 10 - também conhecido por \n que é a sua representação simbólica na linguagem C.

1 0 1 1 <- -5

+ 1 0 1 0 <- -6

1 0 1 0 1 <- 5

Ola Mundo,

bla, bla

Page 20: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

2014-2015-2016 -20- V01beta

É importante notar que no código ASCII os grupos de algarismos, letras maiúsculas e letras

minúsculas têm códigos sequenciais. O código ASCII dos algarismos vai do 0 ao 9 por ordem

numérica. O código ASCII das letras minúsculas vai do a ao z por ordem numérica. O código

ASCII das letras maiúsculas vai do A ao Z por ordem numérica.

Esta circunstância está na base dos processos de ordenação dos caracteres

(designadamente da ordenação alfabética) e da aritmética de caracteres.

Por exemplo, podemos dizer que a letra B á maior que a letra A, uma vez que o código ASCII

de B representa um número binário maior que o código ASCII de A.

Em muitas circunstâncias representa-se o código de um caracter escrevendo o caracter entre

' '. Por exemplo

'a' representa o código ASCII da letra a

'5' representa o código ASCII do algarismo 5

'+' representa o código ASCII do sinal +

Assim, usando esta notação, podemos dizer que

'B' > 'A'

Os mesmos princípios permitem fazer "contas" com caracteres - na realidade são contas com

o código mas que têm significado lógico em termos dos caracteres envolvidos.

Assim, por exemplo, sabendo que o código ASCII da letra B é 100 0010 sabe que o da letra

C é 100 0011 e o letra F é 100 0110. Quer dizer:

'C' = 'B' + 1

'F' = 'C' + 3

Outro exemplo: pode obter o código ASCII da letra f somando ao código ASCII da letra a a

diferença entre o código ASCII de F e o de A. Ou seja, usando a mesma representação:

'f' = 'a' + ( 'F' - 'A')

Muitas vezes é necessário converter os caracteres que representam algarismos no valor numérico correspondente. O valor numérico de um caracter obtém-se fazendo a diferença para o caracter '0'. Por exemplo '3'-'0' = 3

ou seja a diferença entre o código ASCII do caracter '3' e do caracter '0' é, justamente, 3.

Repare ainda que no código ASCII os últimos 4 bits representam o número binário

correspondente ao algarismo. Por exemplo, os últimos 4 bits do código ASCII do algarismo

7 são 0111 e representam, justamente, o número binário 7.

7.3. O 8º bit: paridade

Normalmente os computadores usam palavras 8 bits ou múltiplos de 8 bits. Isto faz com que

sobre um bit na representação de cada caracter.

Este bit de sobra pode ter várias utilidades. Uma delas é ser usado como bit de paridade.

Imagine que está a transmitir texto sobre uma linha com ruído. Pode acontecer que a

transmissão adultere algum dos bits, levando os recetor a obter alguns caracteres errados.

Uma das formas de minimizar este problema á usar o 8º bit como bit de paridade. Assim, por

exemplo, ao mandar um caracter cujo código ASCII tenha um número par de 1s o 8º bit irá a

Page 21: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

2014-2015-2016 -21- V01beta

0 e no caso contrário irá a 1. Nestas condições o recetor, confrontando o caracter recebido

com o bit de paridade pode detetar erros de transmissão.

Exemplo: o mesmo texto com bit de paridade

1 100 1111

0 110 1100 1

110 0001

...

7.4 Código ASCII de 8 bits

Outra utilização do 8º bit é a extensão do próprio código ASCII. Usando o 8 bit podem-se

acrescentar mais 128 caracteres ao código original, ficando assim o código com 256

caracteres. Esta possibilidade tem sido usada, em diversas variantes, para introduzir os

caracteres especiais, por exemplo os acentuados.

A imagem abaixo representa a tabela ASCII completa

Page 22: SDAC Modulo 1 Sistemas Numeracao

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES Módulo 1 – Sistemas de Numeração

2014-2015-2016 -22- V01beta