ARQUITETURA DE COMPUTADORES€¢ K = 1024 – Na vida cotidiana e na física, o "k" vale...

Preview:

Citation preview

ARQUITETURA DE ARQUITETURA DE COMPUTADORESCOMPUTADORES

Sistema de NumeraçãoSistema de Numeração

Prof Daves MartinsMsc Computação de Alto Desempenho

Email: daves.martins@ifsudestemg.edu.br

Sistemas Numéricos

• Principais sistemas numéricos:• Decimal

• 0, 1, ..., 9• Binário

• 0, 1• Octal

• 0, 1, ..., 7• Hexadecimal

• 0, 1, ..., 9, A, B, C, D, E, F•É importante atentar que no sistema hexadecimal, as letras de A até F equivalem, em decimal, a 10, 11, 12, 13, 14 e 15, respectivamente

Conversão Base X – Base 10

• Processo: soma de multiplicações• numd = anxn + an-1xn-1 + ... + a0x0

• Exemplos, converter para a base 10:

• 10112

• 4A3B16

•72718

Conversão Base X – Base 10

• numd = anxn + an-1xn-1 + ... + a0x0

• Binário – Decimal: 10112

• 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20

• 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 1110• Octal– Decimal: 72718

• 7 * 83 + 2 * 82 + 7 * 81 + 1 * 80

• 7 * 512 + 2 * 64 + 7 * 8 + 1 * 1 = 376910

• Hexadecimal – Decimal: 4A3B16

• 4 * 163 + A * 162 + 3 * 161 + B * 160

• 4 * 163 + 10 * 162 + 3 * 161 + 11 * 160

• 4 * 4096 + 10 * 256 + 3 * 16 + 11 * 1 = 1900310

Conversão Base X – Base 10

• Exercícios, converter para a base 10:

• 11002

• 01112

• ABCD16

•A8B216

Respostas

•Respostas ao exercício anterior:• 11002 = 12 10

• 01112 = 7 10

• ABCD16 = 43981 10

•A8B216 = 43186 10

Conversão Base 10 – Base X

• num1d x r1 num2d x r2 num3d

numn-1d x rn-1 rn

numix = rnx...r2xr1x

• Exemplo, converter 5310 para binário:53 2 1 26 2 0 13 2 1 6 2 0 3 2 1 11101012

Conversão Base 10 – Base X

Momento de Parar: quando o quociente é menor do que o valor da baseNeste caso, o valor da base é “2”

Conversão Base 10 – Base X

• Exemplo, converter 101610 para hexadecimal:1016 16 8 63 16 15 3

3F816

•Exemplo, converter 5310 para hexadecimal:53 16 5 3

3516

Conversão Base 10 – Base X

• Exercícios, converter da base 10:• para binário, 25• para hexadecimal, 156

Conversão Base 10 – Base X

• Respostas• 25 10 = 11001 2

• 156 10 = 9C 16

– Somamos por colunas à partir da direita, temos 8+5=13, como a soma excedeu o maior dígito disponível, usamos a regra do transporte para a próxima coluna.

– Assim, dizemos que dá 3 e “vai um”.– Este transporte “vai um” é computado na soma

da próxima coluna, que passa a ser 8+1+1=10, novamente usamos o transporte e dizemos que dá 0 e “vai um” abrindo uma nova coluna que é 0+0+1=1.

– Obtemos desta forma o resultado 103.

Adição e subtração em binário

• Vamos agora para o sistema base 2, como temos apenas dois dígitos, vamos verificar quais os possíveis casos que ocorrerão na soma por colunas: a) 0 b) 0 c) 1 d) 1 e) 1 +0 +1 +0 +1 1 0 1 1 10 +1 11

• Nos casos “a”,”b” e “c” não houve transporte.

Adição e subtração em binário

• No caso “d” houve transporte, o resultado é 0 e “vai um” e no caso “e” realizamos a soma de três parcelas incluindo um transporte, o resultado é 1 e “vai um”.

• Vamos agora efetuar 11012+10112, temos:

1 1 1

1101 +1011 11000

Adição e subtração em binário

• Outro exemplo, efetuar 111012 + 10012 1 1

11101 + 1001 100110• Ainda outro exemplo, efetuar 1012+1112+102 1 1

101 111 + 10 1110

Adição e subtração em binário

• Subtração no sistema binário• Como o método também é análogo ao da

subtração no sistema decimal, vamos ver quais os possíveis casos que ocorrerão na subtração por colunas.a) 0 b) 0 c) 1 d) 1 -0 -1 -0 -1 0 1 1 0

Adição e subtração em binário

• No caso “b”, o resultado será 1, mas ocorrerá um transporte para a coluna seguinte, que deve ser acumulado no subtraendo.

• Exemplificando,

vamos efetuar 11102 – 10012

1110 1

-1001

0101

Adição e subtração em binário

• Outro exemplo, vamos efetuar 11000- 101 11000 1 1 1

- 101 10011• Multiplicação no sistema binário• Novamente análoga ao caso decimal.

Agora os casos possíveis são:a) 0x0 = 0 b) 0x1 = 0 c) 1x0 = 0 e d)

1x1 = 1

Adição e subtração em binário

• Exemplificando, efetuar 111102 x 112

11110 x 11 1 1 1

11110 11110+ 1011010

Adição e subtração em binário

• Outro exemplo, efetuar 11012 x 102

1101 x 10 0000 1101+ 11010

Adição e subtração em binário

Tipos de dados tratados pelo computador

• Dados e as instruções armazenados em memória – são codificados sob a forma de sinais

elétricos do tipo ligado e desligado• representado pelos números 1 e 0

• sistema binário

– cada unidade de informação é chamada de bit

• abreviação de Binary digit

• Unindo dois ou mais bits– Um bit pode representar dois valores: 1 ou 0, ou

então verdadeiro ou falso– Pode-se unir dois ou mais bits para representar

mais de dois valores• quantidade de valores representáveis por uma

sequência de n bits é de 2n

– Algumas strings de bits têm nomes próprio: • uma sequência de 8 bits são chamados de byte • uma sequência de 4 bits é chamada de nibble• um grupo de 16 bits é chamado de word• um grupo de 32 bits é chamado de double word• um grupo de 64 bits é chamado de quad word

Tipos de dados tratados pelo computador

• K = 1024– Na vida cotidiana e na física, o "k" vale 1000

• 1 km = 1000 metros • 1 kg = 1000 gramas • 1 kV = 1000 volts

– Número 1024 foi o escolhido para representar o "k" da computação

• por razões de simplificação de hardware

• M = 1024 K– "M" normalmente vale 1.000.000, na computação vale:

• 1 M = 1024 k = 1024x1024 = 1.048.576

• G = 1024 M– "G" que normalmente vale 1 bilhão, na computação vale

• 1 G = 1024 M = 1024x1024x1024 = 1.073.741.824

Tipos de dados tratados pelo computador

• Um caractere normalmente é representado por um byte– maioria dos códigos alfanuméricos representam caractere

através de um byte– código ASCII a letra 'A' é representada pelo byte “0100

0001“– uma sequência de caracteres é expressa por uma cadeia

de bytes sucessivos– Nem todos os tipos de códigos utilizam os 8 bits de um

byte para a representação de caracteres

Representação de Caracteres

• Código de 7 bits (ASCII)– apareceu com as linguagens de alto nível

Representação de Caracteres

• ASCII Estendido– caracteres extras representam caracteres de línguas

mortas e caracteres especiais para desenhas figures

Representação de Caracteres

• Representação de Números Inteiros– Representação de números não sinalizados

• utiliza-se normalmente o valor do próprio número binário– número 6 é representado por 0101 – número 12 é representado por 1100

– Representação de números sinalizados• módulo e sinal (MS)• complemento de 1 (C-1)• complemento de 2 (C-2) • excesso de 2 elevado a (N-1)

Representação Interna de Números

• Módulo e Sinal (MS)– Bit que está situado mais à esquerda representa o

sinal• valor será 0 para o sinal + e 1 para o sinal -

– Bits restantes (N-1) representam o módulo do número

– Exemplo• supondo que exista a limitação de 8 bits (N=8)

– valor 00101010 representa o número +42 – valor 10101010 representa o número -42

– Amplitude (faixa) de representação para N bits • -2N-1+1 ≤ X ≤ 2N-1-1

• Para 8 bits (byte): -127 ≤ X ≤ 127• Para 16 bits (word): -32767 ≤ X ≤ 32767• Para 32 bits (double word): -2147483647 ≤ X ≤ 2147483647

Representação Interna de Números

• Módulo e Sinal (MS)– Vantagem deste sistema

• possuir faixa simétrica

– Deficiências• possui duas representações para o número 0

– para 8 bits: 00000000 (+0) e 1000000 (-0)

– Problema da Soma

Representação Interna de Números

• Vamos ver alguns exemplos:– Representar em binários sinal-módulo os números

2310 , -1510 , 1110 e -910 usando palavras de 8 bits.

2310 = 101112 usando 8 bits temos: 000101112

1510 = 11112 usando 8 bits temos: 000011112 como o sinal é negativo vem –1510 = 100011112.

1110 = 10112 usando 8 bits temos: 000010112

910 = 10012 usando 8 bits temos: 000010012 , como o sinal é negativo vem –910 = 100010012

Representação Interna de Números

• Complemento de 1 (C-1)– Utiliza o bit mais à esquerda para o sinal

• 0 ao sinal + e o 1 ao sinal -

– Números positivos• N-1 bits da direita representam o módulo (como no MS)

– Números negativos• obtidos pelo complemento de todos os seus dígitos

(trocando 0 por 1 e vice-versa) incluindo o bit de sinal

– Exemplo• supondo que exista a limitação de 8 bits (N=8) • valor 00101010 representa o número +42

• valor 11010101 representa o número -42

Representação Interna de Números

• Complemento de 1 (C-1)– Mesma faixa de representação para N dígitos do

método MC• -2N-1+1 ≤ X ≤ 2N-1-1

– Desvantagem• tem duas representações para o número 0

– 00000000 (+0) e 11111111 (-0)

Representação Interna de Números

Ocorre porque há duas representações parao zero: -0 e +0

Representação Interna de Números

Representação Interna de Números

• 1 + 255 = 0• Significa que...• 0 – 1 = 255 ( 11111111b)• E que...• 0 – 2 = 254 (11111110b)• 0 – 3 = 253 (11111101b)• 0 – 4 = 252 (11111100b)• ...• 0 – 127 = 129 (10000001b)• 0 – 128 = 128 (10000000b)

Representação Interna de Números

• Complemento de 2 (C-2)– Utiliza o bit mais à esquerda para o sinal

• 0 ao sinal + e o 1 ao sinal -

– Números positivos• N-1 dígitos da direita representam o módulo

– Números negativos• executa-se o Complemento de 1: obtém-se o complemento de

todos os bits do número positivo (trocando 0 por 1 e vice-versa) incluindo o bit do sinal

• Ao resultado obtido soma-se 1 (em binário), desprezando-se o último transporte (se existir)

– O mais utilizado para representar números negativos

Representação Interna de Números

• Por questões de convenção e eficiência, utiliza-se a notação de complemento a 2 para se trabalhar com números binários no computador

• Utilizando esta notação, a subtração é uma soma. Por exemplo: 7 – 5 seria 7 + (-5)

• Embora seja uma alteração sutil, faz uma enorme diferença para o computador

• Números que tenham o bit mais à esquerda 1 são negativos. Os que tiverem 0 neste bit, serão positivos

• Para trabalhar com complemento a 2, é necessário saber a quantidade de bits que os números devem ter. Isto varia de acordo com o processador. Caso o resultado exceda esta quantidade de bits, o bit mais à esquerda é desprezado

• Deve-se proceder da seguinte maneira:– Os números negativos devem ter seus bits invertidos– Soma-se 1 ao valor obtido

Representação Interna de Números

• Complemento de 2 (C-2)– Faixa de representação é assimétrica (inconveniente)

• -2N-1 ≤ X ≤ 2N-1-1• Para 8 bits (byte): -128 ≤ X ≤ 127• Para 16 bits (word): -32768 ≤ X ≤ 32767• Para 32 bits (double word): -2147483648 ≤ X ≤ 2147483647

– Vantagem• uma única representação para o número 0• Para 8 bits, teremos: 00000000

Representação Interna de Números

39

Representação Interna de Números

• Complemento de 2 (C-2)

40

Representação Interna de Números

Exemplo

• Faça 10 – 5 utilizando complemento a 2. Suponha que seu processador trabalhe com números de 5 bits

• Na verdade, deve-se fazer 10 + (-5)• 10, em binário é: 01010• 5 em binário é: 00101• Aplicando o complemento a 2, obteremos -5:

– 00101. Invertendo seus bits, temos: 11010– Fazendo 11010 + 1, temos 11011

• Agora, basta somar: 01010 + 11011. Assim, obtemos 100101. Como o processador é de 5 bits, o bit mais à esquerda a mais será desprezado. Assim, o número que obtive como resultado foi 00101. De fato, o resultado é 5.

Representação Interna de Números

• Vamos exemplificar obtendo os complementos de 2 dos números binários abaixo:

binário compl de 1 compl de 2

10001001 01110110 01110111 00111100 11000011 11000100 10011111 01100000 01100001 11000101 00111010 00111011 01101011 10010100 10010101

Representação Interna de Números

• Exercícios• Efetue as operações binárias a) 10001+1111 b) 1110+1001011 c) 1011+ 11100

d) 110101+1011001+1111110 e) 1100+1001011+11101 f) 10101-1110 g) 100000-11100 h) 1011001-11011

i) 11001x101 j) 11110x110 k) 11110x111

• Represente os números em notação sinal-módulo 8bitsa) 97 b) -121 c) 79 d) -101

• Represente os números do exercício anterior em complemento de 2.• Efetue as operações utilizando complemento de 2.

a) 111100-11101011 b) 101101-100111 c) 758-308

• Os números manipulados– grande demais para ser representados provocam

um overflow.– pequeno demais para ser representados provocam

um underflow.• Os sistemas têm feedback diferentes em caso de over

ou underflow. Certos param a execução, certos dão uma mensagem e outros representam o número de uma forma especifica.

Overflow e underflow

• Como guardar esse número?

• 65340000000000000000000000000000

• Pode ser reescrito assim:

• 6,534 * 10+31

• O que significa * 10+31 ?

• Significa que tenho que mudar a vírgula de lugar para obter o número real

• No caso, preciso andar 31 casas à direita

Notação científica ou Notação em Ponto Flutuante

Notação em Ponto Flutuante

Notação em Ponto Flutuante

• É comum especificar esses números assim:• 6,534 * 10+31 → 6,534E31• 6,534 * 10-31 → 6,534E-31• Repare que essa representação tem 3 partes• 6,534E-31• Quais são os nomes destas partes?

6,534E-31• Característica• Mantissa• Expoente

Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, 2007.

Intervalo normalizado aproximado: 2–126 a 2127. também chamado de short real.

Notação em Ponto Flutuante

Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, 2007.

• Sinal– 1 = negativo, 0 = positivo

• Significando– Dígitos decimais à esquerda e à direita do ponto decimal– Notação posicional ponderada– Exemplo:

123.154 = (1 x 102) + (2 x 101) + (3 x 100) + (1 x 10–1) + (5 x 10–2) + (4 x 10–3)

• Expoente– Inteiros sem sinal– bias inteiro (127 para precisão simples)

Notação em Ponto Flutuante

Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, 2007.

Notação em Ponto Flutuante

Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, 2007. 50

• A mantissa é normalizada quando um 1 aparece à esquerda do ponto binário

• Não-normalizado: o ponto binário pode variar até que o expoente seja zero

• Exemplos

Notação em Ponto Flutuante

• Será que isso funciona com binários?• 10110000000000000000000000000000b• Pode ser reescrito assim:• 1,011b * 2+31

Assumimos que a característica é sempre 1b

Notação em Ponto Flutuante

Notação em Ponto Flutuante

Notação em Ponto Flutuante

Conversão números fracionários/binário e binários/fracionários

Notação em Ponto Flutuante

Conversão números fracionários/binário e binários/fracionários

• Vamos representar o número 2,25 nessa notação

• Primeiro vamos converter para binário• Parte inteira:• 2 = 10b• Parte fracionária:• 0,25 = 0,01b• Logo... 2,25 = 10,01b• Em notação científica:• 10,01b = 1,001b * 21

Notação em Ponto Flutuante

• Usar 8 bits é didático, mas muito limitado

• para a prática

• Até meados dos anos 1980, cada fabricante de computador tinha seu próprio formato para representar números em ponto flutuante.

• Solução: criação do Padrão 754 (IEEE 1985).

• O Padrão IEEE 754 procurou uniformizar a maneira como as diferentes máquinas representam os números em ponto flutuante, bem como devem operá-los.

• O padrão IEEE 754 para ponto (vírgula) flutuante é a representação mais comum para números reais em computadores de hoje, incluindo PC's compatíveis com Intel, Macintosh, e a maioria das plataformas Unix/Linux.

Notação em Ponto Flutuante

• O padrão IEEE 754 define três formatos:– Precisão simples (32 bits)– Precisão dupla (64 bits)– Precisão estendida (80 bits)

Notação em Ponto Flutuante

• Por que aumentar mais os bits de mantissa que os de expoente?

Notação em Ponto Flutuante

Notação em Ponto Flutuante

Exercícios

Exercícios

• 1. Represente o número 273,5234 segundo padrão IEEE de 32 bits

• 2. Converta o número obtido acima para decimal.

• 3. Escreva a palavra Abacaxi como o computador a vê, isto é, usando os códigos ASCII dos caracteres. Use a notação hexadecimal

Exercícios

• 1. Efetue a soma computacional binaria 123 + (- 418).– A) utilizando a representação MS– B) utilizando a representação C1– C) utilizando a representação C2

• Ao final converta os resultado para decimal.

Exercícios

(Questão 1 – Petrobrás – Analista de Sistemas Júnior – Engenharia de Software – ano 2010) Ao converter o número (1011100)2 da base binária para as bases decimal, hexadecimal e octal, obtêm-se, respectivamente, os valores: a) 2910, B416 e 5608

b) 2910, 5C16 e 1348

c) 9210, B416 e 5608

d) 9210, 5C16 e 1348

e) 9210, 5C16 e 2708

Exercícios

(Questão 22 – BADESC – Análise de Sistemas – ano 2010) O sistema binário representa a base para o funcionamento dos computadores. Assim, um odômetro binário mostra no display o número 10101111. A representação desse número em decimal e em hexadecimal e o próximo número binário mostrado no display, serão, respectivamente: a) 175, AE e 10101110 b) 175, EF e 10110000 c) 175, AF e 10110000 d) 191, EA e 10110000 e) 191, FA e 10101110

Exercícios

(Questão 34 – TRT – Analista Judiciário – Tecnologia da Informação – ano 2011) Considere o quadro abaixo:

Exercícios

(Questão 22 – Petrobrás – Analista de Sistemas Júnior – Suporte de Infraestrutura – ano 2005) Um computador utiliza representação de inteiros em complemento a dois (C2) com valores armazenados em 8 bits. Indique qual é a representação em C2 do valor decimal -123. a) 10000101 b) 10000100 c) 01111011 d) 11111011 e) 10000111

Exercícios

1111011 Binário

0000100 C1+ 1----------------------0000101 acrescentar o sinal

10000101

(Questão 31 – CESGRANRIO - 2013 - BNDES - Profissional Básico - Análise de Sistemas – Desenvolvimento) Muitas vezes é necessário converter a representação de um número inteiro com n bits para sua representação com m bits, onde m > n. Se a representação em complemento de dois com 8 bits do número inteiro positivo +19 é 00010011, a representação em complemento de dois com 16 bits do número inteiro negativo -19 é a) 1000000000010011 b) 1000000011101101 c) 1000000010010011 d) 1111111111101101 e) 1111111100010011

Exercícios

(CESPE - 2009 - ANAC - Analista Administrativo - Tecnologia da Informação) Considere que os números, em decimal, A = -345 e B = +239 sejam convertidos para a representação em complemento a 2, usando-se registradores de 16 bits. Qual o resultado da operação A – B, demonstre os cálculos.

Exercícios

1111110110111000.

OBRIGADO!OBRIGADO!

Recommended