39

Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

Embed Size (px)

Citation preview

Page 1: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,
Page 2: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

2

Disciplina:Introdução à Engenharia da

Computação

Aula 07 (semestre 2011.2)

Prof. Rosalvo Ferreira de Oliveira Neto, M.Sc.

[email protected]

Colegiado de Engenharia de Computação

Page 3: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

33

Representação da Informação em

Sistemas Computacionais

(continuação)

Page 4: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

4

Operações com binários

• Soma

• Subtração

• Multiplicação

• Divisão

A Informação e sua representação

Page 5: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

5

Soma

• 0+0=0

• 0+1=1

• 1+0=1

• 1+1= fica 0 e transporte de 1 (para somar ao digito

imediatamente à esquerda)

• 1+1+1= fica 1 e transporte de 1(para somar ao digito

imediatamente à esquerda)

A Informação e sua representação

Page 6: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

6

Soma

A Informação e sua representação

Page 7: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

7

Exemplo: 1100 + 1111

A Informação e sua representação

Page 8: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

8

Subtração

• 1-1=0

• 1-0=1

• 0-0=0

• 0-1=1 e vai 1* para ser subtraído no digito seguinte

A Informação e sua representação

Page 9: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

9

Subtração

A Informação e sua representação

Page 10: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

10

Multiplicação

A multiplicação entre binários é similar à realizada com

números decimais. A única diferença está no momento

de somar os termos resultantes da operação.

A Informação e sua representação

Page 11: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

11

Multiplicação

A Informação e sua representação

Page 12: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

12

Exemplo: 1 1 1 x 1 1 1

A Informação e sua representação

Page 13: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

13

Divisão

Essa operação também é similar àquela realizada

entre números decimais:

110 /10 = 11

A Informação e sua representação

Page 14: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

14

Conversão de Números Fracionários

Lei de Formação ampliada (polinômio):

Exemplo: (101,110)2 = ( ? )10

1 22 + 0 21 + 1 20 +1 2-1 + 1 2-2 + 0 2-3 = (5,75)10

A Informação e sua representação

Conversão entre Sistemas de Numeração

Page 15: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

15

Operação inversa: multiplicar a parte fracionária pela baseaté que a parte fracionária do resultado seja zero.

Decimal outro sistema

Exemplo: (8,375)10 = ( ? )2

A Informação e sua representação

Conversão entre Sistemas de Numeração

Page 16: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

16

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

Um computador executa operações sobre dados numéricos (osnú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 pelocomputador, de forma correta e eficiente (com bomdesempenho e pouco consumo de memória).

16

A Informação e sua representação

Page 17: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

17

Os dados podem ser:

Alfabéticos

Letras, números e símbolos (codificados em ASCII e EBCDIC)

Numéricos

Números inteiros

Ponto flutuante (números reais ou fracionários)

Lógicos

Variáveis que possuem apenas dois valores para representação(FALSO e VERDADEIRO).

17

A Informação e sua representação

Page 18: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

18

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

Os números podem ser positivos ou negativos. As operaçõesaritméticas, em particular a subtração, podem originarresultados negativos.

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

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

18

Representação de números inteiros

Page 19: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

19

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

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

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

Representação em complemento de 2

19

Representação de números inteiros

Page 20: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

20

O bit mais significativo representa o sinal:

0 (indica um número positivo)

1 (indica um número negativo)

Os demais bits representam a grandeza (magnitude).

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

Exemplos: (8 bits)

001010012 = +4110

101010012 = - 4110

magnitudesinal

20

Representação de números inteiros

Page 21: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

21

11111111 -127

01111111 +127

10001001 -9

00001001 +9

Valor binário com 8 bits

(7 + bit de sinal)

Valor decimal

Exemplos: (8 bits)

Assim, uma representação em binário com n bits teria disponível para a

representação do número n-1 bits (o bit mais significativo representa o

sinal).

21

Representação de grandeza com sinal

Page 22: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

22

Exemplo : (8 bits)

001010012 = +4110

11010111c2 = -4110

Exemplo : (8 bits)

000011002 = +1210

11110100c2 = -1210

Representação de números inteiros positivos

Igual à representação de grandeza com sinal.

Representação de números inteiros negativos

Mantêm-se os bits menos significativos da direita para a esquerdaaté a ocorrência do primeiro bit igual a 1 (inclusive), sendo osbits restantes complementados de 1.

Representação em complemento de 2

Page 23: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

23

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

N

(decimal)

N

(binário)

-N

(sinal-

magnitude)

-N

(comple-

mento de 2)

1 00000001 10000001 11111111

2 00000010 10000010 11111110

3 00000011 10000011 11111101

4 00000100 10000100 11111100

10 00001010 10001010 11110110

20 00010100 10010100 11101100

Representação de números inteiros

Page 24: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

24

Haverá sempre um padrão de bits a mais ou a menos, nãoimporta qual a representação escolhida.

Representação de números inteiros

Page 25: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

25

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

Exemplo:

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?

1) 0000000000000000000000000000000000.0000000000000000000000000009

2) 2000000000000000000000000000000000.0000000000000000000000000000

Representação de números reais

Page 26: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

26

Forma usual de representação de números reais: 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,724

Representação de números reais

Page 27: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

27

O número 45,724 pode ser expresso como:

45,724 x 100

45724 x 10-3

0,45724 x 102

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

Representação de números reais

Page 28: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

28

v

Representação em ponto flutuante

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

n = f x 10e

f - fração ou significando (ou mantissa)

e - expoente (inteiro positivo ou negativo)

Qualquer número (inteiro ou fracionário) pode ser expressono formato número x baseexpoente, podendo-se variar aposição da vírgula e o expoente.

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

Page 29: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

29

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

Exemplos:

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ção dos números é determinada pela quantidadede dígitos do expoente, e a precisão é determinada pelaquantidade de dígitos do significando.

Representação em ponto flutuante

Page 30: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

30

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 normalizada: só existe uma forma de representar um número.

Forma não normalizada: um mesmo número pode ser representadode diversas maneiras.

(*) O padrão IEEE 754 para números em ponto flutuante – significando

normalizado – começa com um bit 1, seguido de um ponto (vírgula) binário e

pelo resto do significando (número = ± 1,_ _ ... x 2exp )

Representação em ponto flutuante

Page 31: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

31

Representação da Informação no

computador

Equipamento digital que só entende 0s e 1s

Processador Linguagem de máquina

Linguagem assembly

Linguagem de

Programação

Compilador

Page 32: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

32

Representação da Informação no

computador

Por exemplo, para fazer a seguinte conta:

1 + 2 + 3

Em um computador hipotético, a simples operação acima poderia ser executada

através de um programa como este:

00000001 00000001 00000010 00000010 00000010 00000011

Traduzindo para algo mais legível, o programa acima seria composto pelas seguintes

instruções:

• Guardar o valor 1

• Acrescentar ao valor guardado o valor 2

• Acrescentar ao valor guardado o valor 3

Page 33: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

33

Representação da Informação no

computador

O código anterior escrito em linguagem de programação:

public class Soma {

public static void main(String[] args) {

int valor = 1;

valor = valor + 2;

System.out.println(valor);

}

}

Page 34: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

34

Representação da Informação no

computador

Exemplos de linguagens de programação:

• Java

• C

• C++

• C#

• Pascal

Page 35: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

35

Representação da Informação no

computador

Tipos de dados em Java

Tipo Descrição

Boolean Pode assumir o valor true ou o valor false

Char Caractere em notação Unicode de 16 bits

Byte Inteiro de 8 bits em notação de complemento de dois

Short Inteiro de 16 bits em notação de complemento de dois

Int Inteiro de 32 bits em notação de complemento de dois

Long Inteiro de 64 bits em notação de complemento de dois

float Representa números em notação de ponto flutuante

normalizada em precisão simples de 32 bits em

conformidade com a norma IEEE 754-1985.

Page 36: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

36

Exemplo:

Escreva os números decimais abaixo nas seguintesrepresentações: sinal e magnitude; representação em Grandezacom sinal; representação em complemento de 2 (utilizando 8bits, se existir representação).

a) -10

b) –15

c) –100

d) –130

Representação de números inteiros

Page 37: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

37

Exemplo:

Efetue as seguintes operações em binário:

a) 0101 + 0100

b) 101010 + 1001

c) 10111001 + 101011

Representação de números inteiros

Page 38: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,

3838

Referências Bibliográficas

Notas de aula da disciplina “Introdução à Informática”, do

professor Fabrício Braga (UNIVASF).

Notas de aula da disciplina “Introdução à Computação”, da

professora Joseana Macêdo Fechine (UFCG).

STALLINGS, W. Arquitetura e Organização de Computadores.

5ª ed. Pearson Prentice-Hall do Brasil, 2006.

Sítio da internet:

http://www.calculadoraonline.com.br/view/index.php

Page 39: Disciplina Introdução à Engenharia da Computaçãorosalvo.oliveira/Disciplinas/2011_2/IEC/aulas/... · codificados em uns e zeros, que possam ser interpretados pelo computador,