A Informação e sua Representação (Parte I)

Preview:

DESCRIPTION

A Informação e sua Representação (Parte I). A Informação e sua Representação. Em um computador são armazenados e processados apenas dados e instruções. Um computador executa operações sobre dados numéricos (os números) ou alfabéticos (letras e símbolos). - PowerPoint PPT Presentation

Citation preview

DSC/CEEI/UFCG

A Informação e sua A Informação e sua RepresentaçãoRepresentação

(Parte I)(Parte I)

2DSC/CEEI/UFCG

Em um computador são armazenados e processados apenas dados e instruções.

Um computador executa operações sobre dados numéricos (os números) ou alfabéticos (letras e símbolos).

É preciso definir uma forma de representar os dados, codificados em uns e zeros, que possam ser interpretados pelo computador, de forma correta e eficiente (com bom desempenho e pouco consumo de memória).

A Informação e sua A Informação e sua RepresentaçãoRepresentação

3DSC/CEEI/UFCG

Os dados podem ser:Os dados podem ser:

AlfabéticosAlfabéticos– letras, números e símbolos (codificados em ASCII e

EBCDIC)

Numéricos Numéricos – ponto fixo, números inteiros– ponto flutuante (números reais ou fracionários)– BCD (representação decimal codificada em binário)

LógicosLógicos– Variáveis que possuem apenas dois valores para

representação (FALSO e VERDADEIRO).

A Informação e sua A Informação e sua RepresentaçãoRepresentação

4DSC/CEEI/UFCG

Todos os dados numéricos são representados em um computador como uma seqüência de 0s e 1s.

Os números podem ser positivos ou negativos. As operações aritméticas, em particular a subtração, podem originar resultados negativos.

Um aspecto primordial a ser definido seria então como representar o sinal.

Como é que um computador sabe que um dado número é Como é que um computador sabe que um dado número é negativo?negativo?

Representação de Números Representação de Números InteirosInteiros

5DSC/CEEI/UFCG

A resposta a esta pergunta é que isso depende da convenção usada na representação de números.

As convenções mais usuais são as seguintes :

Representação de grandeza com sinal Representação de grandeza com sinal (sinal e magnitude)(sinal e magnitude)

Representação em complemento de 2Representação em complemento de 2

Representação de Números Representação de Números InteirosInteiros

Outras formas de representação:Outras formas de representação:

Complemento de 1Complemento de 1: para negar o valor de um número deve-se inverter os bits do sinal (obsoleta) e Excesso de 2Excesso de 2m-1m-1: representação do número é dada pela soma de seu valor absoluto com 2m-1. Exemplo: Um sistema de 8 bits é chamado de excesso de 128 e um número é armazenado com seu valor real somado a 128. Ex.:-3=011111012 (-3+128=125)

6DSC/CEEI/UFCG

Representação de grandeza com Representação de grandeza com sinalsinal O bit mais significativo representa o sinal:

• 00 (indica um número positivonúmero positivo)• 1 1 (indica um número negativonúmero negativo)

Os demais bits representam a grandeza grandeza (magnitude)(magnitude).

O valor dos bits usados para representar a magnitude independe do sinal (sendo o número positivo ou negativo, a representação binária da magnitude será a mesma).

Exemplos: (8 bits)

001010012 = +4110

101010012 = - 4110

magnitudesinal

7DSC/CEEI/UFCG

11111111 -127

01111111 +127

10001001 -9

00001001 +9

Valor binário com 8 bits Valor binário com 8 bits (7 + bit de sinal)(7 + bit de sinal)

Valor decimalValor decimal

ExemplosExemplos:: (8 bits) (8 bits)

Assim, uma representação em binário com nn bits teria disponível para a representação do número n-1 bits (o bit mais significativo representa o sinal).

Representação de grandeza com Representação de grandeza com sinalsinal

8DSC/CEEI/UFCG

Apresenta uma grande desvantagemdesvantagem: ela exige um grande número de testes para se realizar uma simples soma de dois números inteiros.

Requer que na UAL existam dois circuitos distintos para a adição e a subtração.

Existem duasduas representações representações para o zero.

Representação de grandeza com Representação de grandeza com sinalsinal

9DSC/CEEI/UFCG

Exemplo : (8 bits)

001010012 = +4110

11010111c2 = -4110

Representação em complemento Representação em complemento de 2de 2

Exemplo : (8 bits)

000011002 = +1210

11110100c2 = -1210

Representação de números inteiros positivos Representação de números inteiros positivos igual à representação de grandeza com sinal.

Representação de números inteiros negativosRepresentação de números inteiros negativos mantém-se os bits menos significativos da direita para a esquerda até à

ocorrência do primeiro bit igual a 1 (inclusive), sendo os bits restantes complementados de 1.

Esta operação equivale a realizar: complemento de 1 + 1.

10DSC/CEEI/UFCG

ExemploExemplo: Números inteiros codificados em binário de 8 bitsbinário de 8 bits em um sistema que utiliza complemento de 2:

(-128, -127, ..., -2. -1, 0, +1, +2,..., +127)(-128, -127, ..., -2. -1, 0, +1, +2,..., +127)

{10000000, 10000001, ..., 11111110, 11111111, {10000000, 10000001, ..., 11111110, 11111111, 00000000, 00000001, 00000010, ..., 01111111}00000000, 00000001, 00000010, ..., 01111111}

Bit mais significativo informação de sinal (0 = positivo e 1 = negativo)

Representação em complemento Representação em complemento de 2de 2

11DSC/CEEI/UFCG

Requer um só circuitoum só circuito (somador) para fazer a adição e a subtração.

Há apenas uma representação para o valor 00 (disponibilidade para mais uma representação)mais uma representação) - mais um número negativo pode ser representado (para 8 bits, pode-se representar o número –12810 100000002) .

A quantidade de números positivos é diferentediferente da quantidade de números negativos.

Representação em complemento Representação em complemento de 2de 2

12DSC/CEEI/UFCG

ExemploExemplo:

Escreva os números decimais abaixo nas seguintes representações: sinal e magnitude; representação em complemento de 1; representação em complemento de 2 e excesso de 128 (utilizando 8 bits, se existir representação).a) -1 b) –20 c) –127 d) –128

Representação de Números Representação de Números InteirosInteiros

13DSC/CEEI/UFCG

Números negativos de 8 bits expressos em 4 sistemas diferentes

Representação de Números Representação de Números InteirosInteiros

N(decimal)

N(binário)

-N(sinal-

magnitude)

-N(comple-

mento de 1)

-N(comple-

mento de 2)

-N(excesso de

128)

1 00000001 10000001 11111110 11111111 01111111

2 00000010 10000010 11111101 11111110 01111110

3 00000011 10000011 11111100 11111101 01111101

4 00000100 10000100 11111011 11111100 01111100

10 00001010 10001010 11110101 11110110 01110110

20 00010100 10010100 11101011 11101100 01101100

100 01100100 11100100 10011011 10011100 00011100

127 01111111 11111111 10000000 10000001 00000001

128 Não existe represen-

tação

Não existe represen-

tação

10000000 00000000

14DSC/CEEI/UFCG

Representação de Números ReaisRepresentação de Números Reais

Em alguns tipos de cálculo, a faixa de variação dos números envolvidos é muito grande.

ExemploExemplo: – 1) Massa do elétron - da ordem de 9 x 10-28 gramas– 2) Massa do Sol - aproximadamente igual a 2 x 1033 gramas– Faixa de variação: > 1060

– Exemplo de representação (34 dígitos à esquerda do ponto decimal e 28 dígitos à direita do mesmo)

Como representar esses números no computador?Como representar esses números no computador?

1) 0000000000000000000000000000000000.0000000000000000000000000009

2) 2000000000000000000000000000000000.0000000000000000000000000000

15DSC/CEEI/UFCG

Representação de Números ReaisRepresentação de Números Reais

Forma usual de representação de números reais: parte inteira, vírgula (ou ponto), parte fracionária.parte inteira, vírgula (ou ponto), parte fracionária.

Esta representação, embora cômoda para cálculos no papel, não é adequada para processamento no computador.

Exemplo: 45,724Exemplo: 45,724

16DSC/CEEI/UFCG

Representação de Números ReaisRepresentação de Números Reais

O número 45,72445,724 pode ser expresso como:• 45,724 x 1045,724 x 1000

• 45724 x 1045724 x 10-3-3

• 0,45724 x 100,45724 x 1022

É necessário o uso de um sistema de representação de números no qual a faixa de variação dos números seja independente do número de dígitos significativos dos números representados.

17DSC/CEEI/UFCG

Uma maneira de separar a faixa de variação dos números de sua precisão consiste em representá-lo na notação científica.

n n = = f f x 10 x 10ee

ff - fração ou significando (ou mantissa) ee - expoente (inteiro positivo ou negativo)

Qualquer número (inteiro ou fracionário) pode ser expresso no formato número x basenúmero x baseexpoenteexpoente, podendo-se variar a posição da vírgula e o expoente.

Denominação (computacional): representação em ponto representação em ponto flutuanteflutuante (o ponto varia sua posição, modificando, em conseqüência, o valor representado).

Representação em Ponto Representação em Ponto FlutuanteFlutuante

18DSC/CEEI/UFCG

Representação pode variar (“flutuarflutuar”) a posição da vírgula, ajustando a potência da base.

ExemplosExemplos: • 3,14 = 0,314 x 10-1 = 3,14 x 100 • 0,000001= 0,1 x 10-5 = 1,0 x 10-6

• 1941 = 0,1941 x 104 = 1,941 x 103

A faixa de variaçãofaixa de variação dos números é determinada pela quantidade de dígitos do expoente e a precisãoprecisão é determinada pela quantidade de dígitos do significando.

Representação em Ponto Representação em Ponto FlutuanteFlutuante

19DSC/CEEI/UFCG

Forma normalizada:Forma normalizada: usa um único dígito antes da vírgula, diferente de zero (**).

Na representação computacional de números em ponto flutuante, a representação normalizada é, em geral, melhor que a não-normalizada.– Forma normalizadaForma normalizada: só existe uma forma de representar um

número.– Forma não normalizadaForma não normalizada: um mesmo número pode ser

representado de diversas maneiras.

Representação em Ponto Representação em Ponto FlutuanteFlutuante

(**) Padrão IEEE 754 para números em ponto flutuante – significando significando normalizadonormalizado – começa com um bit 1, seguido de um ponto (vírgula) binário e pelo resto do significando (número = ± 1,_ _ ... x 2exp )

MantissaMantissa normalizadanormalizada - começa com o ponto (vírgula) binário seguido por um bit 1 e pelo resto da mantissa (bit antes da vírgula igual a zero).

20DSC/CEEI/UFCG

Ilustração:Ilustração:

No sistema binário: 110101110101 = 110,101x2110,101x233 = 1,10101x21,10101x255 = 0,0110101x20,0110101x277

Números armazenados em um computador - os expoentes serão também gravados na base dois Como 310 = 112 e 7=1112

110,101 x (10)11 = 1,10101x(10)101 = 0,0110101x(10)111

Representação normalizada - há apenas um “1” antes da vírgula ExemploExemplo: 1,10101x(10)1,10101x(10)101101

Representação em Ponto Representação em Ponto FlutuanteFlutuante

21DSC/CEEI/UFCG

Representação em Ponto Representação em Ponto FlutuanteFlutuanteAlgumas definições:Algumas definições:

No número 1,10101x(10)101:• 1,10101 = significando• 101 = expoente

OBSOBS:– a base binária não precisa ser explicitada (o computador usa sempre esta)– O “1” antes da vírgula, na representação normalizada

– se esta for adotada, também pode ficar implícito, economizando um bit (“bit escondidobit escondido”)

DSC/CEEI/UFCG

A Informação e sua A Informação e sua RepresentaçãoRepresentação

(Parte II)(Parte II)

23DSC/CEEI/UFCG

Operações aritméticas – Operações aritméticas – Sistema BinárioSistema Binário

AdiçãoAdição SubtraçãoSubtração MultiplicaçãoMultiplicação DivisãoDivisão

As operações aritméticas nos sistemas binário, octal, decimal e hexadecimal obedecem a regras similares.

24DSC/CEEI/UFCG

Adição deslocamento à direita na série, cada deslocamento correspondendo a adição de uma unidade.

Adição entre dois números de um algarismo pode-se obter resultados com um ou dois dígitos.

Estouro (maior algarismo é ultrapassado): Carry (transporte) ou vai-um.

Adição – Sistema binárioAdição – Sistema binário

25DSC/CEEI/UFCG

RegraRegra::

Adição – Sistema binárioAdição – Sistema binário

26DSC/CEEI/UFCG

Inversa à adição deslocamento à esquerda do minuendo de tantas unidades quantas forem o subtraendo.

Se o minuendo é menor que o subtraendo ? Estouro subtrair uma unidade do minuendo ou

somar uma unidade ao subtraendo da casa seguinte.

Estouro borrow (empréstimo) ou vem-um.

Subtração – Sistema binárioSubtração – Sistema binário

27DSC/CEEI/UFCG

RegraRegra::

Subtração – Sistema binárioSubtração – Sistema binário

28DSC/CEEI/UFCG

RegraRegra

0 0 = 00 1 = 01 0 = 01 1 = 1

Outras Operações Aritméticas Outras Operações Aritméticas Multiplicação – Sistema binárioMultiplicação – Sistema binário

Multiplicação pela baseMultiplicação pela base

Desloca-se os algarismos de um número para a esquerda ou a sua vírgula para a direita.

29DSC/CEEI/UFCG

Procedimento igual ao dos decimais, considerando-se apenas que: 0/1 = 0 0/1 = 0 e 1/1 = 1 1/1 = 1.

Divisão pela BaseDivisão pela Base

Deslocando-se os algarismos de um número para a direita ou a sua vírgula para a esquerda.

Outras Operações Aritméticas Outras Operações Aritméticas Divisão – Sistema binárioDivisão – Sistema binário

30DSC/CEEI/UFCG

Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude

Aritmética em Complemento de 2Aritmética em Complemento de 2

A Informação e sua A Informação e sua RepresentaçãoRepresentação

31DSC/CEEI/UFCG

Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude

Algoritmo para operação aritmética de adição:Algoritmo para operação aritmética de adição: Verificam-se os sinais dos números e efetua-se uma

comparação entre eles. Se ambos os números têm o mesmo sinal, somam-se

as magnitudes; o sinal do resultado é o mesmo das parcelas.

Se os números têm sinais diferentes:a) identifica-se a maior das magnitudes e registra-se o seu sinal;

b) subtrai-se a magnitude menor da maior (apenas as magnitudes);

c) sinal do resultado é igual ao sinal da maior magnitude.

32DSC/CEEI/UFCG

ExemploExemplo: Realize as operações aritméticas a seguir (em sinal e magnitude). Considere a palavra de dados com 6 bits.

a) (+13)10 + (+12)10 b) (+18)10 + (-11)10

c) (-21)10 + (+10)10 d) (-17)10 + (-9)10

e) (+17)10 + (+19)10 f) (-17)10 + (-19)10

Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude

33DSC/CEEI/UFCG

Solução:Solução:

a) (+13)10 + (+12)10 b) (+18)10 + (-11)10

c) (-21)10 + (+10)10 d) (-17)10 + (-9)10

+13 001101

+12 001100

+25 011001

+18 010010

-11 101011

+ 7 000111

-21 110101

+10 001010

- 11 101011

-17 110001

-9 101001

-26 111010

Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude

34DSC/CEEI/UFCG

Solução:Solução:

a) (+17)10 + (+19)10 b) (-17)10 + (-19)10

+17 010001

+19 010011

+36 100100

-17 110001

-19 110011

-36 100100

““vai 1”vai 1”

Estouro (overflowoverflow) - existência de um “vai 1” para o bit de sinal.

Faixa de representação de valores para 6 bits (em sinal e magnitude) -31 a + 31.

overflowoverflow

““vai 1”vai 1”

Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude

35DSC/CEEI/UFCG

Subtração (Minuendo - Subtraendo = Subtração (Minuendo - Subtraendo = Resultado)Resultado)

Algoritmo para operação aritmética de subtração:Algoritmo para operação aritmética de subtração:

1. Troca-se o sinal do subtraendo.

2. Procede-se como no algoritmo da adição.

Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude

36DSC/CEEI/UFCG

ExemploExemplo: Realize as operações aritméticas a seguir (em sinal e magnitude). Considere a palavra de dados com 6 bits.

a) (-18)10 - (+12)10

b) (-27)10 - (-14)10

c) (+27)10 - (+31)10

d) (+19)10 - (-25)10

Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude

37DSC/CEEI/UFCG

Solução:Solução:

a) (-18)10 - (+12)10 b) (-27)10 - (-14)10

c) (+27)10 - (+31)10 d) (+19)10 - (-25)10

-18 110010

-12 101100

-30 111110

-27 111011

+14 001110

-13 101101

+27 011011

-31 111111

- 4 100100

+19 010011

+25 011001

+44 101100

-1210 +1410

-3110 +2510

overflowoverflow

vai 1vai 1

Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude

38DSC/CEEI/UFCG

O problema encontrado pelos fabricantes de computadores na implementação da ULA ULA (Unidade Lógica e Aritmética) que efetuasse operações aritméticas com valores representados em sinal e magnitude residiu, principalmente, em dois fatores: custo custo e velocidade velocidade.

CustoCusto - necessidade de construção de dois elementos, um para efetuar somas e outro para efetuar subtração (dois componentes eletrônicos).

VelocidadeVelocidade - ocasionada pela perda de tempo gasto na manipulação dos sinais, de modo a determinar o tipo de operação e o sinal do resultado.

Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude

39DSC/CEEI/UFCG

Outro inconveniente:Outro inconveniente: dupla representação para o zero , o que requer um circuito lógico específico para evitar erros de má interpretação.

Sistemas modernos não empregam aritmética em sinal e magnitude, a qual foi definitivamente substituída pela aritmética em complemento de 2aritmética em complemento de 2 (no caso de representação em ponto fixoponto fixo).

Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude

40DSC/CEEI/UFCG

Algoritmo para operação aritmética de adição:Algoritmo para operação aritmética de adição:

1. Somar os dois números, bit a bit, inclusive o bit de sinal.2. Desprezar o último “vai 1” (para fora do número), se houver.3. Se, simultaneamente, ocorrer “vai 1” para o bit de sinal e “vai 1”

para fora do número, ou se ambos não ocorrerem, o resultado está correto.

4. Se ocorrer apenas um dos dois “vai 1” (ou para o bit de sinal ou para fora), o resultado está incorreto. Ocorreu um overflowoverflow. O overflowoverflow somente pode ocorrer se ambos os números tiverem

o mesmo sinal (seja positivo ou ambos negativos) e, nesse caso, se o sinal do resultado for oposto ao dos números.

Aritmética em Complemento de Aritmética em Complemento de 22

41DSC/CEEI/UFCG

Algoritmo para operação aritmética de subtração:Algoritmo para operação aritmética de subtração:

1. Complementar a 2 o subtraendo, independentemente se é um valor positivo ou negativo.

2. Somar os números, utilizando o algoritmo da adição já mostrado anteriormente.

Aritmética em Complemento de Aritmética em Complemento de 22

42DSC/CEEI/UFCG

ExemploExemplo: Realize as operações aritméticas a seguir (em complemento de 2). Considere a palavra de dados com 6 bits.

a) (+13)10 + (+15)10 b) (+23)10 + (+20)10

c) (+15)10 + (-13)10 d) (+20)10 - (+17)10

e) (-24)10 - (-15)10 f) (-24)10 - (+15)10

Aritmética em Complemento de Aritmética em Complemento de 22

43DSC/CEEI/UFCG

Solução:Solução:

a) (+13)10 + (+15)10 b) (+23)10 + (+20)10

00001111

+13 001101

+15 001111

+28 011100

Resultado corretoResultado correto - não houve “vai 1” nem para o bit de sinal nem para fora do número.

01010100

+23 010111

+20 010100

+43 101011

Resultado incorretoResultado incorreto - houve “vai 1” apenas para o bit de sinal.

OverflowOverflow - faixa de representação para 6 bits (-32 a 31)

Aritmética em Complemento de Aritmética em Complemento de 22

44DSC/CEEI/UFCG

Solução:Solução:

c) (+15)10 + (-13)10 d) (+20)10 - (+17)10

11111111

+15 001111

-13 110011

+2 000010

Resultados corretosResultados corretos - houve “vai 1” para o bit de sinal e para fora do número; este é desprezado.

1111100

+20 010100

-17 101111

+3 000011

Aritmética em Complemento de Aritmética em Complemento de 22

45DSC/CEEI/UFCG

Solução:Solução:

e) (-24)10 - (-15)10 f) (-24)10 - (+15)10

00001000

-24 101000

+15 001111

-9 110111

Resultado corretoResultado correto - não houve “vai 1” para o bit de sinal nem para fora do número.

10100000

-24 101000

-15 110001

-39 011001

Resultado incorretoResultado incorreto - houve “vai 1” apenas para fora do número.

OverflowOverflow - faixa de representação para 6 bits (-32 a 31)

Aritmética em Complemento de Aritmética em Complemento de 22

46DSC/CEEI/UFCG

Resumindo, é importante lembrar que:Resumindo, é importante lembrar que: As operações de adição e subtração são

normalmente realizadas como adição. As operações de subtração são realizadas como

soma de complemento (minuendo mais o complemento do subtraendo).

Se o resultado encontrado é um valor positivovalor positivo: o valor decimal correspondente da magnitude é obtido por

pura conversão de base 2 para base 10. Se o resultado encontrado é um valor negativovalor negativo:

O valor está representado em complemento de 2.

Aritmética em Complemento de Aritmética em Complemento de 22

47DSC/CEEI/UFCG

A aritmética em complemento de 2 requer apenas requer apenas um componenteum componente (somadorsomador) para somar dois números e um componenteum componente que realize a operação de complementaçãocomplementação.

O algoritmo básico refere-se, então, à soma dos números, considerando-se que os números negativos estejam representados em complemento de 2; ele acusa, também, se o resultado ultrapassar a quantidade de bits representáveis na ULA, overflow.

Aritmética em Complemento de Aritmética em Complemento de 22

Pode-se efetuar a multiplicação através de sucessivas somas e a divisão através de sucessivas subtrações (processo lento!).

48DSC/CEEI/UFCG

ObservaçãoObservação:

A multiplicação em computadores pode ser feita por um artifício: para multiplicar um número AA por nn, basta somar A A

com AA, nn vezes. Por exemplo, 4 x 3 = 4 + 4 + 4.

A divisão também pode ser feita por subtrações sucessivas!

O que concluímos?O que concluímos? UmaUma operação aritmética pode operação aritmética pode ser realizada em computadores apenas através de ser realizada em computadores apenas através de somas (diretas ou em complemento)! somas (diretas ou em complemento)!

Operações aritméticas – Operações aritméticas – Sistema BinárioSistema Binário

Recommended