• Nenhum resultado encontrado

ArquiteturaDeComputadores-Parte3

N/A
N/A
Protected

Academic year: 2021

Share "ArquiteturaDeComputadores-Parte3"

Copied!
79
0
0

Texto

(1)

PARTE I|I: ARITMÉTICA

COMPUTACIONAL

ARQUITETURA DE COMPUTADORES

(2)

Introdução

Como representar números em memória?

Como representar números negativos e de ponto flutuante?

Como o computador processa esses dados para realizar cálculos?

(3)

Conversão decimal-binário

Toda representação em computadores deve ser binária

Para converter um número decimal para binário, basta fazer divisões sucessivas por 2 e os restos das divisões irão formar o número binário

(4)

Exemplo

23dez

(5)

Exemplo

23dez 23 11 (1) - 22 2

(6)

Exemplo

23dez 23 (1) - 22 11 2 2 5 - 10 (1)

(7)

Exemplo

23dez 23 (1) - 22 11 2 2 5 - 10 (1) - 4 22 (1)

(8)

Exemplo

23dez 23 (1) - 22 11 2 2 5 - 10 (1) - 4 22 (1) - 2 21 (0)

(9)

Exemplo

23dez 23 (1) - 22 11 2 2 5 - 10 (1) - 4 22 (1) - 2 (1)2 (0)

(10)

Exemplo

23dez 23 (1) - 22 11 2 2 5 - 10 (1) - 4 22 (1) - 2 (1)2 (0) 10111dois

(11)

Conversão binário-decimal

Para converter um número binário para decimal, basta somar todos os produtos entre o dígito binário e 2n, sendo n a posição desse dígito

A potência inicia em 0 no dígito menos significativo e acrescenta 1 à potência a cada novo dígito binário

(12)

Exemplo

(13)

Exemplo

10111dois

(14)

Exemplo

10111dois

1x24 + 0x23 + 1x22 + 1x21 + 1x20

Menos significativo Mais significativo

(15)

Exemplo

10111dois

1x24 + 0x23 + 1x22 + 1x21 + 1x20

(16)

Exemplo

10111dois

1x24 + 0x23 + 1x22 + 1x21 + 1x20

16 + 0 + 4 + 2 + 1 23dez

(17)

Exercício

Converta os números abaixo para a base solicitada A. 13dez → Xdois B. 71dez → Xdois C. 99dez → Xdois D. 101011101dois → Xdez E. 111010111dois → Xdez F. 1010101011dois → Xdez

(18)

Exercício

Converta os números abaixo para a base solicitada A. 13dez → 1101dois B. 71dez → 1000111dois C. 99dez → 1100011dois D. 101011101dois → 349dez E. 111010111dez → 471dez F. 1010101011dez → 683dez

(19)

Representando caracteres

Computadores armazenam informações em binário, como armazenar informação de caracteres utilizando este formato?

Programas de computadores utilizam tabelas que convertem caracteres em números

Representar um caracter com 1 byte (8 bits). Possibilidade de representar 256 caracteres

(20)
(21)

Representando números

Primeiro computadores representavam números através de caracteres

Representação de 1 milhão em caracteres: 1000000 (quantos bytes?)

Representação de 1 milhão em binário:

(22)

Representando números

Primeiro computadores representavam números através de caracteres

Representação de 1 milhão em caracteres: 1000000 —> 7 bytes = 56 bits

Representação de 1 milhão em binário:

(23)

Representando números

Como fazer operações com caracteres?

(24)

Soma

Regras básicas para adição de binários

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1

(25)

Soma

Regras básicas para adição de binários

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (Carry = 1) 100110 + 101011 —————————

(26)

Soma

Regras básicas para adição de binários

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (Carry = 1) 100110 + 101011 ————————— 1

(27)

Soma

Regras básicas para adição de binários

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (Carry = 1) 100110 + 101011 ————————— 01 1

(28)

Soma

Regras básicas para adição de binários

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (Carry = 1) 100110 + 101011 ————————— 001 1 1

(29)

Soma

Regras básicas para adição de binários

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (Carry = 1) 100110 + 101011 ————————— 0001 1 1

(30)

Soma

Regras básicas para adição de binários

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (Carry = 1) 100110 + 101011 ————————— 10001 1

(31)

Soma

Regras básicas para adição de binários

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (Carry = 1) 100110 + 101011 ————————— 1010001 1

(32)

Soma

Regras básicas para adição de binários

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (Carry = 1) 100110 + 101011 ————————— 1010001

(33)

Subtração

Regras básicas para subtração de binários

0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Empréstimo de 1) 101110 - 100011 —————————

(34)

Subtração

Regras básicas para subtração de binários

0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Empréstimo de 1) 101110 - 100011 —————————

(35)

Subtração

Regras básicas para subtração de binários

0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Empréstimo de 1) 101110 - 100011 ————————— 1

(36)

Subtração

Regras básicas para subtração de binários

0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Empréstimo de 1) 101100 - 100011 ————————— 1

(37)

Subtração

Regras básicas para subtração de binários

0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Empréstimo de 1) 101100 - 100011 ————————— 11

(38)

Subtração

Regras básicas para subtração de binários

0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Empréstimo de 1) 101000 - 100011 ————————— 011

(39)

Subtração

Regras básicas para subtração de binários

0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Empréstimo de 1) 101000 - 100011 ————————— 1011

(40)

Subtração

Regras básicas para subtração de binários

0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Empréstimo de 1) 101000 - 100011 ————————— 01011

(41)

Subtração

Regras básicas para subtração de binários

0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Empréstimo de 1) 101000 - 100011 ————————— 001011

(42)

Subtração

Regras básicas para subtração de binários

0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Empréstimo de 1) 101110 - 100011 ————————— 001011

(43)

Exercícios

Faça as operações em binário abaixo. Em seguida converta os números para binário e valide sua resposta

A. 111010 + 10111 B. 101011 + 11110 C. 101010 - 10100 D. 11000 - 11001

(44)

Exercícios

Faça as operações em binário abaixo. Em seguida converta os números para binário e valide sua resposta

A. 111010 + 10111 = 1010001 B. 101011 + 11110 = 1001001 C. 101010 - 10100 = 10110

(45)

Representando números

Como representar sinais em memória? Complemento de 1 e de 2

(46)

Complemento de 1

Inverte todos os bits, ou seja, onde tem 0 fica 1 e onde tem 1 fica 0

Número positivos permanecem inalterados, não é necessário inverter os bits

Acrescenta-se o bit que representa o sinal: 0 para positivo e 1 para negativo

11010110 = 00101001

-11010110 = 00101001 = 100101001 +11010110 = 011010110

(47)

Complemento de 1

Como representar o zero?

Pode ser representado +0 e -0

+0 = 00000000 -0 = 11111111

(48)

Complemento de 2

Pretende-se acabar com a dupla representação do zero, como ocorria no complemento de 1

Números positivos continuam com a mesma representação, em números negativos aplica-se a regra do complemento de 1. Em seguida soma 1 ao resultado

É possível fazer a operação de números positivos e negativos sem a necessidade de conversão

(49)

Complemento de 2

Passos para converter um número decimal para complemento de 2

1. Converta para binário

2. Aplique o complemento de 1 3. Some 1 ao resultado

(50)

Complemento de 2

Passos para converter um número decimal para complemento de 2

1. Converta para binário

(51)

Complemento de 2 - Ex.

Converter 23dez para binário em complemento de

2 de 8 bits

Número é positivo?

Sim! Então apenas converte para binário

(52)

Complemento de 2 - Ex.

Converter -23dez para binário em complemento de 2 de 8 bits

Número é positivo?

Não! Então opera-se os seguintes passos: 1. Converte para binário


2. Aplica-se o complemento de 1
 3. Adiciona 1

-23dez = 00010111dois

00010111 = 11101000

(53)

Exercícios

Converta os números binários para complemento de 2 em 8 bits

A. -22 B. -77 C. 71 D. -63

(54)

Exercícios

Converta os números binários para complemento de 2 em 8 bits

A. -22 = 11101010 B. -77 = 10110011 C. 71 = 01000111 D. -63 = 11000001

(55)

Operações em

complemento de 2

A reserva de um bit para a representação do sinal soluciona a questão de representar números negativos em memória Operações em complemento de 1 4 - 3 = 1 0 00100 + 1 11100 = 1 1000000 4 - 3 = 64 ERRADO!

(56)

Operações em

complemento de 2

A reserva de um bit para a representação do sinal soluciona a questão de representar números negativos em memória

Operações em complemento de 2

4 - 3 = 1

0 00100 + 1 11101 = 1 0000001

4 - 3 = 1

Remove o dígito mais significativo: 0000001 CORRETO!

(57)

Exercício

Faça as operações em complemento de 2 1. 2 + 7

2. 3 - 5 3. - 4 - 3 4. 3 - 4

(58)

Representação de ponto

flutuante

Representação de 32 bits de acordo com o IEEE 754 0 00000000 0000000000000000000000000 Sinal 1 bit Expoente 8 bits Fração 23 bits

(59)

Representação de ponto

flutuante

0 00000000 0000000000000000000000000 Sinal 1 bit Expoente 8 bits Fração 23 bits Sinal - 1 bit 0 - positivo 1 - negativo

(60)

Representação de ponto

flutuante

0 00000000 0000000000000000000000000 Sinal 1 bit Expoente 8 bits Fração 23 bits Expoente - 8 bits

Acrescenta 127 e converte para binário

11111111 00000000 0 01111111 Exp = -127 Exp = 0127 255 Exp = 128

(61)

Representação de ponto

flutuante

0 00000000 0000000000000000000000000 Sinal 1 bit Expoente 8 bits Fração 23 bits Fração - 23 bits

(62)

Exemplo 1

Converter 27,76 para binário

Passo 1: Transformar o número em algo com o formato 1,### x 2###

27,76 / 2 = 13,88 (…)

(63)

Exemplo 1

Converter 27,76 para binário

Passo 1: Transformar o número em algo com o formato 1,### x 2###

27,76 / 2 = 13,88 13,88 / 2 = 6,94 6,94 / 2 = 3,47 3,47 / 2 = 1,735

(64)

Exemplo 1

Converter 27,76 para binário

Passo 2: Calcular a mantissa com a parte fracionária do passo 1 até que o resultado seja zero

0,735 * 2 = 1,47 0,47 * 2 = 0,94 0,94 * 2 = 1,88 0,88 * 2 = 1,76 0,76 * 2 = 1,52 0,52 * 2 = 1,04 0,04 * 2 = 0,08 0,08 * 2 = 0,16

(65)

Exemplo 1

Converter 27,76 para binário

Passo 2: Calcular a mantissa com a parte fracionária do passo 1 até que o resultado seja zero

0,735 * 2 = 1,47 0,47 * 2 = 0,94 0,94 * 2 = 1,88 0,88 * 2 = 1,76 0,76 * 2 = 1,52 0,52 * 2 = 1,04 0,04 * 2 = 0,08 0,08 * 2 = 0,16 0,16 * 2 = 0,32 0,32 * 2 = 0,64 0,64 * 2 = 1,28 0,28 * 2 = 0,56 0,56 * 2 = 1,12 0,12 * 2 = 0,24 0,24 * 2 = 0,48 0,48 * 2 = 0,96

(66)

Exemplo 1

Converter 27,76 para binário

Passo 2: Calcular a mantissa com a parte fracionária do passo 1 até que o resultado seja zero

0,735 * 2 = 1,47 0,47 * 2 = 0,94 0,94 * 2 = 1,88 0,88 * 2 = 1,76 0,76 * 2 = 1,52 0,52 * 2 = 1,04 0,04 * 2 = 0,08 0,08 * 2 = 0,16 0,16 * 2 = 0,32 0,32 * 2 = 0,64 0,64 * 2 = 1,28 0,28 * 2 = 0,56 0,56 * 2 = 1,12 0,12 * 2 = 0,24 0,24 * 2 = 0,48 0,48 * 2 = 0,96 0,96 * 2 = 1,92 0,92 * 2 = 1,84 0,84 * 2 = 1,68 0,68 * 2 = 1,36 0,36 * 2 = 0,72 0,72 * 2 = 1,44 0,44 * 2 = 0,88

(67)

Exemplo 1

Converter 27,76 para binário

Passo 2: Calcular a mantissa com a parte fracionária do passo 1 até que o resultado seja zero

0,735 * 2 = 1,47 0,47 * 2 = 0,94 0,94 * 2 = 1,88 0,88 * 2 = 1,76 0,76 * 2 = 1,52 0,52 * 2 = 1,04 0,04 * 2 = 0,08 0,08 * 2 = 0,16 0,16 * 2 = 0,32 0,32 * 2 = 0,64 0,64 * 2 = 1,28 0,28 * 2 = 0,56 0,56 * 2 = 1,12 0,12 * 2 = 0,24 0,24 * 2 = 0,48 0,48 * 2 = 0,96 0,96 * 2 = 1,92 0,92 * 2 = 1,84 0,84 * 2 = 1,68 0,68 * 2 = 1,36 0,36 * 2 = 0,72 0,72 * 2 = 1,44 0,44 * 2 = 0,88

(68)

Exemplo 1

Converter 27,76 para binário

Passo 2: Calcular a mantissa com a parte fracionária do passo 1 até que o resultado seja zero

0,735 * 2 = 1,47 0,47 * 2 = 0,94 0,94 * 2 = 1,88 0,76 * 2 = 1,52 0,52 * 2 = 1,04 0,04 * 2 = 0,08 0,08 * 2 = 0,16 0,16 * 2 = 0,32 0,32 * 2 = 0,64 0,64 * 2 = 1,28 0,28 * 2 = 0,56 0,56 * 2 = 1,12 0,12 * 2 = 0,24 0,24 * 2 = 0,48 0,48 * 2 = 0,96 0,96 * 2 = 1,92 0,92 * 2 = 1,84 0,84 * 2 = 1,68 0,68 * 2 = 1,36 0,36 * 2 = 0,72 0,72 * 2 = 1,44 0,88 * 2 = 1,76 0,44 * 2 = 1,88

(69)

Exemplo 1

Converter 27,76 para binário

Passo 2: Calcular a mantissa com a parte fracionária do passo 1 até que o resultado seja zero

0,735 * 2 = 1,47 0,47 * 2 = 0,94 0,94 * 2 = 1,88 0,76 * 2 = 1,52 0,52 * 2 = 1,04 0,04 * 2 = 0,08 0,08 * 2 = 0,16 0,16 * 2 = 0,32 0,32 * 2 = 0,64 0,64 * 2 = 1,28 0,28 * 2 = 0,56 0,56 * 2 = 1,12 0,12 * 2 = 0,24 0,24 * 2 = 0,48 0,48 * 2 = 0,96 0,96 * 2 = 1,92 0,92 * 2 = 1,84 0,84 * 2 = 1,68 0,68 * 2 = 1,36 0,36 * 2 = 0,72 0,72 * 2 = 1,44 0,88 * 2 = 1,76 0,44 * 2 = 1,88 1

(70)

Exemplo 1

Converter 27,76 para binário

Passo 2: Calcular a mantissa com a parte fracionária do passo 1 até que o resultado seja zero

0,735 * 2 = 1,47 0,47 * 2 = 0,94 0,94 * 2 = 1,88 0,76 * 2 = 1,52 0,52 * 2 = 1,04 0,04 * 2 = 0,08 0,08 * 2 = 0,16 0,16 * 2 = 0,32 0,32 * 2 = 0,64 0,64 * 2 = 1,28 0,28 * 2 = 0,56 0,56 * 2 = 1,12 0,12 * 2 = 0,24 0,24 * 2 = 0,48 0,48 * 2 = 0,96 0,96 * 2 = 1,92 0,92 * 2 = 1,84 0,84 * 2 = 1,68 0,68 * 2 = 1,36 0,36 * 2 = 0,72 0,72 * 2 = 1,44 0,88 * 2 = 1,76 0,44 * 2 = 1,88 10

(71)

Exemplo 1

Converter 27,76 para binário

Passo 2: Calcular a mantissa com a parte fracionária do passo 1 até que o resultado seja zero

0,735 * 2 = 1,47 0,47 * 2 = 0,94 0,94 * 2 = 1,88 0,76 * 2 = 1,52 0,52 * 2 = 1,04 0,04 * 2 = 0,08 0,08 * 2 = 0,16 0,16 * 2 = 0,32 0,32 * 2 = 0,64 0,64 * 2 = 1,28 0,28 * 2 = 0,56 0,56 * 2 = 1,12 0,12 * 2 = 0,24 0,24 * 2 = 0,48 0,48 * 2 = 0,96 0,96 * 2 = 1,92 0,92 * 2 = 1,84 0,84 * 2 = 1,68 0,68 * 2 = 1,36 0,36 * 2 = 0,72 0,72 * 2 = 1,44 0,88 * 2 = 1,76 0,44 * 2 = 1,88 101

(72)

Exemplo 1

Converter 27,76 para binário

Passo 2: Calcular a mantissa com a parte fracionária do passo 1 até que o resultado seja zero

0,735 * 2 = 1,47 0,47 * 2 = 0,94 0,94 * 2 = 1,88 0,76 * 2 = 1,52 0,52 * 2 = 1,04 0,04 * 2 = 0,08 0,08 * 2 = 0,16 0,16 * 2 = 0,32 0,32 * 2 = 0,64 0,64 * 2 = 1,28 0,28 * 2 = 0,56 0,56 * 2 = 1,12 0,12 * 2 = 0,24 0,24 * 2 = 0,48 0,48 * 2 = 0,96 0,96 * 2 = 1,92 0,92 * 2 = 1,84 0,84 * 2 = 1,68 0,68 * 2 = 1,36 0,36 * 2 = 0,72 0,72 * 2 = 1,44 0,88 * 2 = 1,76 0,44 * 2 = 1,88 10111100001010001111011

(73)

Exemplo 1

Converter 27,76 para binário

Passo 2: Calcular a mantissa com a parte fracionária do passo 1 até que o resultado seja zero

0,735 * 2 = 1,47 0,47 * 2 = 0,94 0,94 * 2 = 1,88 0,76 * 2 = 1,52 0,52 * 2 = 1,04 0,04 * 2 = 0,08 0,08 * 2 = 0,16 0,16 * 2 = 0,32 0,32 * 2 = 0,64 0,64 * 2 = 1,28 0,28 * 2 = 0,56 0,56 * 2 = 1,12 0,12 * 2 = 0,24 0,24 * 2 = 0,48 0,48 * 2 = 0,96 0,96 * 2 = 1,92 0,92 * 2 = 1,84 0,84 * 2 = 1,68 0,68 * 2 = 1,36 0,36 * 2 = 0,72 0,72 * 2 = 1,44 0,88 * 2 = 1,76 0,44 * 2 = 1,88 1011110000101000111101123 bits

(74)

Exemplo 1

Converter 27,76 para binário

Passo 3: Cálculo do expoente. Basta somar o expoente por 127 e fazer a conversão para binário

27,76 = 1,735 x 2

4

Exp = 4 + 127 = 131 13110 = 100000112

(75)

Exemplo 1

Converter 27,76 para binário

Passo 4: Montar o ponto flutuante em binário Sinal positivo = 0

(76)

Exemplo 1

Converter 27,76 para binário

Passo 4: Montar o ponto flutuante em binário Sinal positivo = 0

0 10000011 0000000000000000000000000

(77)

Exemplo 1

Converter 27,76 para binário

Passo 4: Montar o ponto flutuante em binário Sinal positivo = 0

0 10000011 10111100001010001111011

Exp = 10000011

(78)

Exercício

Converter os números abaixo para ponto flutuante binário de 32 bits na representação do IEEE 754

1. -14,5 2. 25,5

(79)

Exercício

Converter os números abaixo para ponto flutuante binário de 32 bits na representação do IEEE 754

1. -14,5 2. 25,5

1 10000010 11010000000000000000000

Referências

Documentos relacionados

Pode-se usar até 16 módulos em um sistema MicroLogix 1500 ao utilizar uma Unidade Básica B (até 8 para a Série A) dependente das especificações de alimentação. Além disso,

Foram conduzidos tres experimentos no IFES campus Santa Teresa, com plantas de lichia, cultivar Bengal, objetivando avaliar o efeito de tratamentos pré germinativos e

Para atribuição das classificações geomecânicas RMR, Q-System e GSI, assim como os demais parâmetros mecânicos do maciço rochoso em estudo em conjunto com as

dade entre arte e verdade. A partir delas, Heidegger pondera que a filo- sofia de Nietzsche significa a inversão do platonismo – não a sua completa superação –, que no limite

SISTEMA DE VIGILÂNCIA EM SERVIÇO – VIGISERV Esse sistema de informação encontra-se implantado, desde 2002, nas 15 unidades de assistência às pessoas vivendo com o HIV da

Atua de forma alternada entre os pontos UM, DOIS, TRÊS e QUATRO com a mesma intensidade de força, proporcionando ao usuário uma massagem rela- xante com efeito tipo “rolo”..

Esclarecemos, também, que o primeiro levantamento foi realizado por meio de consulta aos gestores, que preencheram uma planilha com os dados de trabalho presencial dos

Mendes (1992) destaca que no século XVIII foi intensificada a ocupação nas margens graças à abertura de fazendas; surgimento de núcleos urbanos como o povoado de Cáceres