módulo 1 - sebenta

28
SDAC Sistemas Digitais e Arquitectura de Computadores 1 Módulo 1 Sistemas de Numeração 30 Horas

Upload: nuno-carvalho

Post on 27-Nov-2015

89 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

1

Módulo 1

Sistemas de Numeração 30 Horas

Page 2: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

2

Índice

Conteúdo ..................................................................................................................................................... 4

Objectivos de Aprendizagem ....................................................................................................... 4

Estrutura de um sistema de Numeração. ...................................................................................5

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. ......................................................................................................5

Fórmula geral de significância posicional num sistema de base B. ................................................ 6

Principais Sistemas de Numeração utilizados ............................................................................... 6

Conversão de números representados em qualquer base para a base decimal, usando a fórmula

geral de significância posicional................................................................................................... 10

Exercícios .................................................................................................................................... 11

Conversão de números em decimal para outras bases de numeração através do método das

divisões sucessivas. ..................................................................................................................... 12

Exercícios .................................................................................................................................... 12

Exercícios .................................................................................................................................... 13

Exercícios .................................................................................................................................... 14

Exercícios .................................................................................................................................... 15

Exercícios .................................................................................................................................... 16

Resumo ....................................................................................................................................... 17

.................................................................................................................................................... 17

Operações aritméticas (adição e subtracção) em qualquer base (base binária em particular). ..... 18

Somar em binário .................................................................................................................... 18

Exercícios .................................................................................................................................... 18

Somar em Octal (Em Base 8) ................................................................................................... 19

Exercícios .................................................................................................................................... 19

Subtrair em binário .................................................................................................................. 21

Exercícios .................................................................................................................................... 21

Multiplicação no sistema binário.............................................................................................. 21

Exercícios ................................................................................................................................... 22

Notação de números Binários Positivos e Negativos ............................................................... 23

Exercícios .................................................................................................................................... 23

Page 3: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

3

O complemento a 1 ................................................................................................................ 24

O complemento a 2 ................................................................................................................. 25

Adição e subtracção de números em código de complementos. .............................................. 25

Bibliografia ................................................................................................................................. 28

Page 4: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

4

Objectivos de Aprendizagem

Conhecer a estrutura de um Sistema de Numeração e os principais Sistemas de Numeração

Efectuar a conversão de números entre os vários sistemas de numeração.

Efectuar operações aritméticas (adição e subtracção) em qualquer base de numeração.

Representar números relativos (positivos e negativos) em código de complementos.

Page 5: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

5

Estrutura de um sistema de Numeração.

Nos sistemas digitais, recorre-se com frequência a diferentes sistemas de numeração para

representar a informação digital.

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.

Um numeral é um símbolo ou grupo de símbolos que representa um número em um determinado

instante da evolução do homem. Tem-se que, numa determinada escrita ou época, os numerais

diferenciaram-se dos números do mesmo modo que as palavras se diferenciaram das coisas a

que se referem. Os símbolos "11", "onze" e "XI" (onze em latim) são numerais diferentes,

representativos do mesmo número, apenas escrito em idiomas e épocas diferentes. Este artigo

debruça-se sobre os vários aspectos dos sistemas de numerais. Ver também nomes dos números.

Um sistema de numeração, (ou sistema numeral) é um sistema em que um conjunto de números

é representado por numerais de uma forma consistente. Pode ser visto como o contexto que

permite ao numeral "11" ser interpretado como o numeral romano para dois, o numeral binário

para três ou o numeral decimal para onze.

Em condições ideais, um sistema de numeração deve:

• Representar uma grande quantidade de números úteis (ex.: todos os números

inteiros, ou todos os números reais);

• Dar a cada número representado uma única descrição (ou pelo menos uma

representação padrão);

• Refletir as estruturas algébricas e aritméticas dos números.

Por exemplo, a representação comum decimal dos números inteiros fornece a cada número

inteiro uma representação única como uma sequência finita de algarismos, com as operações

aritméticas (adição, subtração, multiplicação e divisão) estando presentes como os algoritmos

padrões da aritmética. Contudo, quando a representação decimal é usada para os números

racionais ou para os números reais, a representação deixa de ser padronizada: muitos números

racionais têm dois tipos de numerais, um padrão que tem fim (por exemplo 2,31), e outro que

repete-se periodicamente (como 2,30999999...).

A representação numérica comum utiliza a base 10. Isso significa que existem 10 símbolos (ou

dígitos) diferentes, representados pelos símbolos de 0 a 9. Utilizando 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, 2, …, 9, 10

Page 6: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

6

Fórmula geral de significância posicional num sistema de base B.

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 na base decimal (base 10):

8317(10) vale 8 x 103 + 3 x 102 + 1 x 101 + 7 x 100

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

8317(10) vale 8x103 + 3x102+ 1x10 + 7

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 respectiva 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

di x 10i

O termo geral para o valor de um número em qualquer base na posição i tem o peso da base i, ou

seja vale:

di x basei

Exemplos:

25 = 2×10 + 5

367 = 3×102 + 6×10 + 7

2745 = 2×103 + 7×102 + 4×10 + 5

Principais Sistemas de Numeração utilizados

Sistema decimal (base 10)

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

dígitos) diferentes, representados pelos símbolos de 0 a 9. Utilizando 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, 2, …, 9, 10

Page 7: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

7

Ao passar de ‘9’ para ‘10’ ocorre o primeiro “incidente” na contagem: esgotou-se a capacidade de

representação de números apenas com um dígito – passamos a usar dois dígitos, em que o da

esquerda tem maior peso – neste caso tem o seu valor multiplicado por 10, ou seja, pelo valor da

base de numeração utilizada;

Continuando a contagem, temos:

…, 10, 11, 12, …, 18, 19, 20

Ao chegar a ‘19’ esgotaram-se os dígitos na posição com menor peso. Por isso aumenta-se ‘1’ na

posição seguinte; já contamos duas vezes a base, ou seja, vamos em 2×10.

Retomando a contagem:

…, 20, 21, 22, …, 97, 98, 99, 100

Ao passar de ‘99’ para ‘100’ esgotaram-se os dígitos na segunda posição; isso significa que

contámos 10 vezes a base, ou seja 10×10 = 102

. Um dígito na 3ª posição vale portanto a base ao quadrado.

…, 100, 101, …, 998, 999, 1000, …

A partir de ‘1000’, o dígito na quarta posição vale por 103

Sistema binário (base 2)

Especialmente importante, dado que é com esta representação com que os computadores

trabalham, é a base 2, que tem apenas dois dígitos: ‘0’ e ‘1’.

O processo de contagem é idêntico ao praticado em qualquer outra base. No entanto, e como

apenas existem dois dígitos nesta base, ao fazer uma contagem rapidamente aparecem

sequências com muitos dígitos, como será visto mais à frente. Começando a contagem:

0, 1, 10

Esgotada a capacidade de representação com um dígito, passam-se a usar dois dígitos; o dígito

da direita vale uma vez a base, ou seja, vale 2;

…, 10, 11, 100

‘11’, é o maior número representável com apenas dois dígitos. Em ‘100’ passamos a ter três

dígitos em que o da esquerda vale a base ao quadrado (22);

…, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000, …

E poder-se-ia continuar indefinidamente. Repare que na representação ‘1000’, o ‘1’ da esquerda

vale pela base ao cubo (23); e em ‘10000’, o dígito da esquerda vale pela base à quarta (24).

Page 8: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

8

Sistema octal (base 8)

O que foi visto para a base 10 generaliza-se facilmente para outras bases. Considerando por

exemplo a base 8, em vez de 10 dígitos, passamos a ter agora 8 dígitos – e para não inventar o

que já está inventado, vamos representá-los pelos símbolos de ‘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, 2, 3, 4, 5, 6, 7

Na base 8, o último número representável com apenas um algarismo será portanto o ‘7’. O

número que se segue na contagem será o ‘10’ (que tem o valor 1×8 + 0 = 8) . Sendo assim a nossa

sequência de contagem é:

…, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20

Repare que ao chegar a ‘17’ mais uma vez se esgotaram os dígitos na posição com menos peso:

aumenta-se 1 na posição seguinte; já contamos 2 vezes a base, ou seja, vamos em 2 × base (e o

valor é 2×8);

Seguindo a contagem:

…, 20, 21, 22, …, 75, 76, 77

Repare que o ‘77’ será o maior número com 2 dígitos representável em base 8 (e o seu valor é 7×8

+ 7 = 63). A seguir ao ‘77’ virá então o número representado por ‘100’ – contámos base×base

vezes; o dígito ‘1’ na terceira posição vale a base ao quadrado (neste caso 2×82).

E seguindo este raciocínio poderíamos continuar a contagem indefinidamente:

…, 77, 100, 101, 102, …, 107, 110, 111, …, 117, 120, 121, …, 775, 776, 777, 1000, …

Sistema hexadecimal (base 16)

Vamos agora considerar a base 16. Na base 16 teremos 16 dígitos; os primeiros 10 são

representados da maneira habitual, isto é, usando os algarismos de ‘0’ a ‘9’; a partir daí são

usadas as primeiras letras do alfabeto: ‘A’, ‘B’, ‘C’, ‘D’, ‘E’ e ‘F’.

O processo de contagem é em tudo semelhante ao que foi visto até este ponto. A única

particularidade é que agora os números representáveis com um dígito vão até ao ‘F’ (cujo valor é

15):

0, 1, 2, …, 9, A, B, C, D, E, F

Page 9: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

9

Repare agora que depois do ‘9’ não se passou nada de especial, pois ainda há o ‘A’ (cujo valor é

10), depois o ‘B’ (cujo valor é 11), e assim sucessivamente até ao ‘F’, que será o maior número

representável com apenas um algarismo na base 16.

Continuando a contagem:

…, E, F, 10

Ao chegar a ‘F’ esgotaram-se os dígitos, logo esgotou-se a capacidade de representação de

números só com um dígito – passam-se a ter que usar dois dígitos. Na representação ‘10’, o ‘1’ da

esquerda vale a base (o valor de ‘10’ na base 16 será portanto 1×16 + 0 = 16);

…, 10, 11, 12, …, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20

Em ‘20’ contámos duas vezes o número de dígitos; vamos em 2×base (e o valor respectivo é 2×16

= 32).

…, 20, 21, …, 99, 9A, 9B, 9C, 9D, 9E, 9F, A0, A1, … FC, FD, FE, FF, 100

O número representado por ‘FF’ é o maior valor representado com 2 dígitos na base 16. O seu

valor é 15×16+15 = 255. Na representação hexadecimal ‘100’, o ‘1’ da esquerda vale por 162.

Tabela com as representações das várias bases numéricas.

Page 10: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

10

Conversão de números representados em qualquer base para a base decimal,

usando a fórmula geral de significância posicional.

O conceito de representação numérica apresentado 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:

di × Bi

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

dn dn-1 ... d2 d1 d0 ,

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

dn×Bn + dn-1×Bn-1 + ... + d2×B2 + d1×B1 + d0×B0

Para clarificar a representação e evitar ambiguidades, pode-se explicitar a base de numeração

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 respectivo de cada um (em decimal) é o que resulta da expressão anterior. Assim:

(312)10 = 3×102 + 1×101+ 2×100

(312)8 = 3×82 + 1×81 + 2×80

(312)16 = 3×162+ 1×161 + 2×160

Obviamente os três números representados têm valores diferentes – a representação e o valor

correspondente são coisas distintas. Em geral, sequências de dígitos iguais em bases diferentes

representam valores diferentes (só serão os mesmos caso tenham apenas um dígito). Pode

confirmar, por exemplo, que:

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

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

(786)10 = (1422)8 = (312)16 = (1100010010)2

Page 11: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

11

Exercícios

1. Converta os seguintes números em base binária para a base decimal:

a. 10

b. 110

c. 111

d. 1100

e. 1101

f. 1111

g. 10000

h. 101010

i. 110010

j. 100101

k. 1101100

l. 11110011

m. 10100110

2. Converta os seguintes números em base octal para a base decimal:

a. 20

b. 25

c. 45

d. 154

e. 363

f. 456

g. 1234

h. 3456

i. 73457

3. Converta os seguintes números em base hexadecimal para a base decimal:

a. A

b. 10

c. 102

d. 1BC

e. AAB

f. C157

g. 237F

h. FFFA0

i. ABCDEF

Page 12: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

12

Conversão de números em decimal para outras bases de numeração através do

método das divisões sucessivas.

Decimal para Binário

Faremos divisões inteiras por 2 até não podermos dividir mais o número, o resultado será a

sequência dos valores do resto, sendo o primeiro resto o valor menos significativo.

Por exemplo:

Exercícios

Converta os seguintes números em base decimal para a base binária:

a. 20(10)

b. 25(10)

c. 48 (10)

d. 154 (10)

e. 363 (10)

f. 459(10)

g. 1234(10)

h. 3456(10)

i. 83457(10)

j. 343456(10)

k. 8344957(10)

Page 13: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

13

Decimal para octal

Faremos divisões inteiras por 8 até não conseguirmos dividir mais o número, o resultado será a

sequência dos valores do resto, sendo o primeiro resto o valor menos significativo.

Por exemplo:

Exercícios

Converta os seguintes números em base decimal para a base octal:

a. 20(10) – 24(8)

b. 25(10) – 31(8)

c. 48 (10) – 60 (8)

d. 154 (10) – 232(8)

e. 363 (10) – 553(8)

f. 459(10) – 713(8)

g. 1234(10) – 2322(8)

h. 3456(10) – 6600(8)

i. 83457(10) - 243001 (8)

j. 343456(10) – 1236640 (8)

k. 8344957(10) – 37652575 (8)

Page 14: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

14

Decimal para Hexadecimal

Faremos divisões inteiras por 16 até não conseguirmos dividir mais o número, o resultado será a

sequência dos valores do resto, sendo o primeiro resto o valor menos significativo se algum valor

de resto for superior a 9 teremos de converte-o para o símbolo respectivo.

Por exemplo:

Exercícios

Converta os seguintes números na base decimal para a base Hexadecimal:

1. 10(10) – A(16)

2. 115(10) – 73(16)

3. 236(10) – EC(16)

4. 333(10) - 14D(16)

5. 450(10) – 1C2(16)

6. 1033(10) -409(16)

7. 4120(10) – 1018 (16)

8. 33453(10) - 82AD(16)

9. 45340(10) - B11C (16)

10. 224550(10) - 36D26 (16)

Page 15: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

15

Octal para binário Neste tipo de conversões para cada número em octal criamos grupos de três dígitos, uma vez

que o maior número que podemos representar com 3 dígitos em binário é o 7.

Exercícios

Converta os seguintes números na base octal para a base binária:

1. 14(8)

2. 45 (8)

3. 154 (8)

4. 363 (8)

5. 123(8)

6. 1544 (8)

7. 3633 (8)

8. 12233(8)

Converta os seguintes números na base binária para a base octal:

1. 1101

2. 1111

3. 10000

4. 101010

5. 110010

6. 1101100

7. 11110011

8. 101001110

9. 110000110001100

10. 110100110001100

11. 1101001100011000

Page 16: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

16

Hexadecimal para binário

Neste tipo de conversões para cada número em hexadecimal criamos grupos de quatro dígitos,

uma vez que o maior número que podemos representar com 4 dígitos em binário é o 15.

Exercícios

Converta os seguintes números da base Hexadecimal para a base binária

a. AB(16)

b. 10(16)

c. 102(16)

d. 1BC(16)

e. AAB(16)

f. C157(16)

g. 237F(16)

h. FFFA0(16)

i. ABCDEF(16)

Converta os seguintes números na base binária para a base Hexadecimal:

a. 1101

b. 1111

c. 10000

d. 101010

e. 110010

f. 1101100

Page 17: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

17

g. 11110011

h. 101001110

i. 110000110001100

j. 110100110001100

k. 1101001100011001

Resumo

Page 18: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

18

Operações aritméticas (adição e subtracção) em qualquer base (base binária em

particular).

Somar em binário

As operações em binário são em tudo semelhantes às decimais. A exiguidade do número de

dígitos faz com que as operações sejam muito apuradas.

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.

Exercícios

Efectue as seguintes somas em binário:

a) 10001+1111

b) 111001+1001011

c) 1011111+ 1110011

d) 1101011+1011001

e) 110011+10010110

f) 10101110+11101110

g) 100000+111000011

h) 1011001+110110011

Page 19: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

19

Somar em Octal (Em Base 8)

Consiste em processo semelhante ao da aritmética binária, com exceção do fato de que, neste

caso, tem-se algarismos disponíveis. Ocorrerá “vai 1” quando a soma de 2 algarismos for igual ou

ultrapassar o valor da base, isto é, 8.

Exemplo 3.11 (adição)

111 3657 + 1741 5620

Da direita para a esquerda, temos:

a) 7 + 1 = 8

Como não há algarismo 8 na base 8, emprega-se o conceito posicional, isto é, 8 unidades de uma

ordem i valem 1 unidade da ordem imediatamente à esquerda. Então: fica ø =

8 - 8 e “vai 1” para a esquerda.

b) 1 (vai 1 vindo da ordem à direita) + 5 + 4 = 10 Utilizando o mesmo conceito anterior, temos: 15

10 — 8 2 e “vai 1” (que é igual a 8).

c) 1 (vai 1) + 6 + 7 = 14

14 - 8 = 6 e ”vai 1”

d) 1 + 3 + 1 = 5 Não há “vai 1” porque não se excedem 7. Resultado: 5620(8)

Exercícios

Efectue as seguintes Adições em octal:

24536 + 25436

5342+2653

53477+76655

663552+6464764

Page 20: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

20

764710373+7722236637

Page 21: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

21

Subtrair em binário

Na subtracção as possibilidades também são muito

limitadas.

Exemplo:

1 para 1 dá 0;

1 para 0 dá 1, e vai 1;

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

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

Exercícios

Efectue as seguintes subtracções em binário:

a) 10001-1111

b) 111001-100

c) 1011111- 1110

d) 1101011-1011

e) 110011-10010

f) 10101110-111011

g) 10000000-1110000

h) 10110010-1101100

i) 1101110011-11001110

Multiplicação no sistema binário

Análoga ao caso decimal. Agora os casos possíveis são:

Page 22: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

22

a) 0x0 = 0 b) 0x1 = 0 c) 1x0 = 0 e d) 1x1 = 1

• Exemplificando, efetuar 111102 x 112

• Outro exemplo, efetuar 11012 x 102

Exercícios

Efectue as seguintes multiplicações em binário:

a) 10001 x 11 b) 111001 x 10 c) 1011111 x 11 d) 1101011 x 101 e) 110011 x 100 f) 1100110 x 111

Page 23: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

23

g)11111 x 1111

Representação de números relativos (positivos e negativos), usando código de

complementos.

Notação de números Binários Positivos e Negativos

Em aplicações práticas, os números binários devem ser representados com sinal. Uma maneira

de fazer isto é adicionar um bit de sinal ao número.

Este bit é adicionado à esquerda do número, por convenção se for zero, o número em questão é

positivo, caso seja 1, o número é negativo.

Este processo é denominado sinal-módulo.

• Vamos ver alguns exemplos:

– Representar em binários sinal-módulo os números 2310 , -1510 , 1110 e -910 usando

palavras de 8 bits.

23(10) = 10111(2) usando 8 bits temos: 000101112

15(10) = 1111(2) usando 8 bits temos: 000011112 como o sinal é negativo vem –1510 = 100011112.

11(10) = 1011(2) usando 8 bits temos: 000010112

9(10) = 1001(2) usando 8 bits temos: 000010012 , como o sinal é negativo vem –910 = 100010012

Exercícios

Efectue as seguintes representações de números decimais em binário sinal-módulo 8 bits:

1. -20(10)

2. -100(10)

3. 156(10)

4. -200(10)

5. 201(10)

6. -3000(10)

7. 4356(10)

Page 24: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

24

O complemento a 1

1. Represente o número absoluto (sem o sinal) em binário, com o número de bits solicitado

(completando com 0s zeros à esquerda).

2. Caso o número seja positivo, não há alteração (o número já está representado).

3. Caso o número seja negativo, complementa-se o número a 1 (inverte-se o valor dos bits

→ todos os bit’s zero passam a 1 e todos bit 1 passa a zero )

Para descobrir o valor de um número representado em complemento para um deverá proceder-

se de forma inversa, segundo este algoritmo:

1. Verifica-se o primeiro bit (que ainda tem como função dizer qual é o sinal do número)

2. Caso o número seja positivo (primeiro bit = 0), apenas converte-se para decimal para

“descobrir” o número.

3. Caso o número seja negativo (primeiro bit = 1)

3.1. Invertem-se os bits do número (retorno do complemento a 1)

3.2. Converte-se o valor do número em decimal. (Não esquecendo que o número é

NEGATIVO)

Page 25: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

25

O complemento a 2

1. Represente o número absoluto (sem o sinal) em binário, com o número de bits solicitado

(completando com zeros à esquerda).

2. Caso o número seja positivo, não há alteração (o número já está representado)

3. Caso o número seja negativo,

3.1. Complementa-se o número a 1, invertendo o valor dos bits (complemento a 1)

3.2. Soma-se 1 ao resultado do complemento a 1

Para “descobrir” o valor de um número representado em complemento de 2, deve-se percorrer o

caminho contrário, seguindo-se o algoritmo a seguir:

1. Verifica-se o primeiro bit (que ainda tem como função dizer qual é o sinal do número)

2. Caso o número seja positivo (primeiro bit = 0), apenas converte-se para decimal para

'descobrir' o número

3. Caso o número seja negativo (primeiro bit = 1)

3.1. Subtrai-se 1 do número (transformando em complemento a 1)

3.2. Invertem-se os bits do número (retorno do complemento a 1) e

3.3. Converte-se o valor do número em decimal. (Não esquecendo que o número é

NEGATIVO)

Page 26: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

26

Adição e subtracção de números em código de complementos.

Complemento para um

Regras:

1. Caso o nº positivo tenha maior valor absoluto que o negativo: a. Ignorar o último transporte b. Somar 1 ao resultado

Exemplos:

1. 12-4 2. 20-5 3. 32-23 4. 20-19

2. Caso o nº negativo tenha maior valor absoluto que o positivo: a. O resultado está correctamente representado em complemento para um.

Exemplos:

1. 12-14 2. 20-50 3. 32-45 4. 20-29

3. Ambos os nºs negativos: a. Somar mais 1 ao resultado

Exemplos:

1. -12-14 2. -20-50 3. -32-45 4. -20-29

4. Ambos os nºs positivos a. O resultado já está em complemento para 1, pode haver necessidade de

acrescentar um zero à esquerda

Exemplos:

1. 12+ 14 2. 20+50

Page 27: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

27

Complemento para dois

1. Caso o número positivo tenha maior valor absoluto que o negativo: a. Ignorar o ultimo transporte b. Complementar para 2 o resultado

i. Exemplos: 1. 12-4 2. 20-5 3. 32-23 4. 20-19

2. Caso o nº negativo tenha maior valor absoluto que o positivo: a. O resultado já está correctamente representado em complemento para 2.

Exemplos:

1. 12-14 2. 20-50 3. 32-45 4. 20-29

3. Ambos os nºs negativos: a. O resultado já está correctamente representado em complemento para 2.

Exemplos:

1. -12-14 2. -20-50 3. -32-45 4. -20-29

4. Ambos os nºs positivos a. O resultado já está em complemento para 2, pode haver necessidade de

acrescentar um zero à esquerda

Exemplos:

1. 12+ 14 2. 20+50

Page 28: Módulo 1 - Sebenta

SDAC Sistemas Digitais e Arquitectura de Computadores

28

Bibliografia sistemas de numeração. (s.d.). Obtido de Wikipedia:

http://pt.wikipedia.org/wiki/Sistema_de_numera%C3%A7%C3%A3o