REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade



Documentos relacionados
Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

Exemplo de Subtração Binária

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Unidade 5: Sistemas de Representação

Aula 2 Sistemas de Numeração (Revisão)

O matemático indiano Pingala apresentou a primeira descrição conhecida de um sistema numérico binário no século III a.c..

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

Sistemas de Numeração

Aula 3 - Sistemas de Numeração

SISTEMAS DE NUMERAÇÃO

Aritmética Binária e. Bernardo Nunes Gonçalves

Sistema de Numeração e Códigos. CPCX UFMS Prof. Renato F. dos Santos

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio:

CAPÍTULO 6 ARITMÉTICA DIGITAL

Hardware de Computadores

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

Introdução à Engenharia de

Representação de Dados

Sistemas de Numeração. Introdução ao Computador 2010/1 Renan Manola

Sistema Numérico. Decimal, Binário e Hexadecimal

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

Computador HIPO. Inicialmente vamos apresentar as unidades fundamentais de um computador:

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

1. Sistemas de numeração

I n f o r m á t i c a

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

Circuitos Digitais 144L

Eletrônica Digital 1 Módulo1 Capítulo 1 Sistemas Numéricos. Prof. Nilton Costa Junior

CAPÍTULO I. UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE ENGENHARIA ELÉTRICA Apostila de Eletrônica Digital. Sistemas de Numeração. 1.

Introdução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação

Operações aritméticas

Notas de Cálculo Numérico

49,36 10 =

Organização e Arquitetura de Computadores I

Arquitetura de Computadores Universidade Guarulhos Prof. Erwin A. Uhlmann

Aula 4 Estatística Conceitos básicos

Álgebra. SeM MiSTéRio

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 12

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Computadores XII: Aprendendo a Somar A4 Texto 3

Capítulo 3 Aula 8. Representação Numérica. Aritmética Computacional Representação Numérica

Comunicação de Dados. Aula 4 Conversão de Sinais Analógicos em digitais e tipos de transmissão

Hardware Básico. - Conceitos Básicos - Números Binários - Principais Componentes. Professor: Wanderson Dantas

Aritmética de Ponto Flutuante e Noções de Erro. Ana Paula

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

DISPOSITIVOS DE BLOCO. Professor: João Paulo de Brito Gonçalves

Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE : SÃO CAETANO DO SUL - SP - CEP:

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Sistemas de Numeração

Introdução à Lógica de Programação. / NT Editora. -- Brasília: p. : il. ; 21,0 X 29,7 cm.

Sistemas de numeração

Sistemas numéricos. Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS ago-09

Sistemas Numéricos e a Representação Interna dos Dados no Computador

Sistemas de Numeração

EFA / S13 SIS Ricardo Castanhinha / Nº STC / Formadoras Alexandra Formosinho & Isabel Carvalho. Sistema Binário

Sistemas de Numeração (Aula Extra)

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

Juros Simples, Compostos, e Contínuos

Notas de aula #1 SISTEMAS NUMÉRICOS

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Aritmética de Ponto Flutuante

Curso de Hardware Aula 01 Tema: Sistema de Medidas Por: Edmilson de Oliveira Reis Revisado em: 02/03/2012

2. Representação Numérica

Arquitetura de Rede de Computadores

Sistemas de Numerações.

Arquitetura de Computadores

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

fx-82ms fx-83ms fx-85ms fx-270ms fx-300ms fx-350ms

Algoritmos DCC 119. Introdução e Conceitos Básicos

Sistema de Memórias de Computadores

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO

Introdução à Informática Aulas 9 e 10

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13

CAPÍTULO 1 REVISÃO DE LÓGICA COMBINACIONAL

ARQUITETURA DE COMPUTADORES

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Circuitos Digitais Cap. 5

2. A influência do tamanho da palavra

PROGRAMAÇÃO BÁSICA DE CLP

ICC - Aula 6. Ivan da Silva Sendin. November 17, Bits, portas logicas, flip-flops,... Numeros e Simbolos Exercicios

3 Sistemas de Numeração:

Sistemas de Numeração e Conversão de Base

Sistema de Numeração

Hit dos Bits. Série Matemática na Escola

SISTEMAS DE NUMERAÇÃO

Unidade 3: Sistemas de Numeração Conversões Entre Quaisquer Bases e Aritmética em Bases Alternativas Prof. Daniel Caetano

Codificação 1. Introdução. C 2 R r {! + codificação

Aula 14: Instruções e Seus Tipos

Ambos têm os algarismos 7854 seguidos, a potência de dez apenas moverá a vírgula, que não afeta a quantidade de algarismos significativos.

TEXTO DE REVISÃO: Uso da calculadora científica e potências de 10.

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

1. NÍVEL CONVENCIONAL DE MÁQUINA

Transcrição:

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização de Computadores Linda Null e Julia Labur. Introdução Ao longo dos anos, muitos padrões e convenções foram estabelecidas para determinar certos aspectos da organização de computadores. Existem várias maneiras pelas quais computadores podem armazenar e manipular números e caracteres. A unidade de informação mais básica em um sistema digital é chamada de bit, que é uma abreviação de binary digit ou digíto binário. Um bit, de forma mais clara, nada mais é que um estado de ligado ou desligado (ou alto e baixo ) dentro de um circuito de computador. Em 1964, os projetistas do computador mainframe IBM System/360 estabeleceram como convenção o uso grupos de 8 bits como a unidade básica de endereçamento de memória do computador, que foi denominada como byte. Palavras em um computador consistem de dois ou mais bytes, ou seja, possuem 16 bits, 32 bits, 64 bits ou qualquer tamanho faça sentido dentro do contexto da organização do computador. Sistemas de Numeração Posicional A ideia geral por trás de sistemas de numeração posicionais é que um valor numérico é representado por potências crescentes de uma raiz (ou base). Isto é frequentemente referido como sistema de numeração ponderado porque cada posição é ponderada pela potência de uma base. O conjunto de números válidos para um sistema de numeração posicional tem o mesmo tamanho que a base daquele sistema. Exemplificando, existem 10 dígitos no sistema decimal, que vão de 0 a 9, e dois dígitos no sistema binário, que vão de 0 a 1. O maior número válido para um sistema em uma determinada base é um a menos do que a base, ou seja, o número 8 não é um numeral válido em qualquer sistema com base menor que 9. Para distinção de números em bases diferentes, usamos a base como subscrito, tal como 3310 para representar o número decimal 33. Qualquer inteiro decimal pode ser expresso com seu valor exato em qualquer outro sistema de base inteira. Exemplo, três números representados como potência de uma base: As duas bases mais importantes na computação são a binária (base dois) e a hexadecimal (base 16). Outra base interessante é a octal (base 8). O sistema binário utiliza somente os dígitos 0 e 1; o sistema octal, utiliza os dígitos de 0 a 7. O sistema hexadecimal permite dígitos de 0 a 9, mais A, B, C, D, E e F que são usados para representar os números de 10 a 15. Conversões de Decimal para Binário Gottfried Leibniz (1646 1716) foi o primeiro a generalizar a ideia do sistema decimal (posicional) para outras bases. Até que os primeiros computadores digitais fossem construídos no final da década de 1940 esse sistema permaneceu nada mais do que uma curiosidade matemática. Nos dias atuais é utilizado no coração de praticamente todos os dispositivos eletrônicos que se baseiam em controles digitais. Pela sua simplicidade, o sistema de numeração binário se traduz facilmente para circuitos

eletrônicos. Também é fácil de ser compreendido pelos seres humanos. Abaixo é apresentada uma tabela com alguns números e suas relativas potências. Conversão de Números Inteiros sem Sinal A conversão entre sistemas com bases diferentes pode ser feito por subtrações sucessivas ou pelo método de divisão-resto. O método com subtrações é incômodo e exige familiaridade com as potências da base sendo usada. Porém por questões de conhecimento vamos demonstrálo no exemplo abaixo: Convertendo 104 10 para base 3. Sabemos que 3 4 = 81 é a mais alta potência de 3 que é menor que 104, sabemos então que nosso número terá cinco dígitos (um para cada potência da base: de 0 até 4). Verificamos quantas vezes 81 cabe em 104, descobrimos que é apenas uma, então subtraímos 104 81 = 23. Sabemos que a próxima potência de 3, 3 3 = 27, é muito grande para subtrair de 23, de modo que anotamos o número 0 e vemos quantas vezes 3 2 cabe em 23. Vemos que é 2 (duas) e subtraímos de 18. Ficamos com 5, do qual subtraímos 3 1 = 3, ficamos com 2, que é 2 x 3 0. Estes passos são apresentados a seguir:

Contudo o método de divisão-resto é mais fácil e rápido do que o método de subtrações sucessivas. Ele adota a ideia de que divisões sucessivas pela base são de fato subtrações sucessivas pela potência da base. O resto que obtemos quando dividimos consecutivamente pela base são os dígitos do resultado, que são lidos de baixo para cima. Abaixo apresentamos um exemplo deste método: Convertendo 104 10 para base 3, utilizando para tal o método de divisão-resto. Esse método funciona com qualquer base e devido à simplicidade de seus cálculos, é particularmente útil na conversão de decimal para binário. Logo abaixo temos um exemplo deste tipo de conversão: Convertendo 147 10 para binário (base 2), utilizando para tal o método de divisão-resto. Um número binário com N bits pode representar inteiros sem sinal de 0 a 2 N 1. Por exemplo 4 bits podem representar valores decimais de 0 a 15, enquanto 8 bits podem representar valores de 0 a 255. O intervalo de valores que podem ser representados por um dado número é extremamente importante ao se fazer operações aritméticas com números binários. Considere a situação na qual números binários possuem tamanho de 4 bits e queremos somar 1111 2 (1510) com 1111 2. Sabendo que 15 + 15 = 30, porém 30 não pode ser representado usando somente 4 bits. Este é um exemplo de condição conhecida como overflow, ocorre quando o resultado de uma operação aritmética fica fora do intervalo de precisão permitido para uma dada quantidade de bits. Conversão de Frações

Frações em qualquer base podem ser aproximadas em qualquer outra base usando potências negativas da raiz. Pontos da base separam a parte inteira de um número de sua parte fracionária. No sistema decimal, o ponto da base é chamado de ponto decimal. Frações binárias possuem ponto binário. Podemos converter frações entre bases diferentes usando métodos análogos aos métodos de subtrações sucessivas e divisão-resto para converter inteiros. O exemplo a seguir mostra como podemos usar subtrações sucessivas para converter um número decimal para base 5. Convertendo 0,4304 10 para base 5, utilizando para tal o método de subtrações sucessivas. Como o método do resto trabalha com potências positivas da base para conversão de inteiros, é razoável usar a multiplicação para converter frações porque elas são expressas com potências negativas da base. Entretanto, em vez de procurar os restos, como feito acima, usamos somente a parte inteira do produto depois da multiplicação pela base. A resposta é lida de cima para baixo, e não de baixo para cima. O exemplo abaixo ilustra este processo. Convertendo 0,4304 10 para base 5, utilizando para tal o método de divisão-resto.

Representação de Inteiro com Sinal Números com sinal exigem tratamento de problemas adicionais. Quando uma variável inteira é declarada em um programa, muitas linguagens de programação automaticamente alocam uma área de memória que inclui um sinal como o primeiro bit daquela posição de memória. Os bits restantes (além do sinal) são usados para representar o próprio número. Como este número é representado depende do método usado. Entre as abordagens existentes o método de magnitude com sinal (mais intuitivo) utiliza os bits restantes para representar a magnitude do número. Este método utiliza o conceito de complementos. Magnitude com Sinal A partir deste ponto, não ignoramos mais a possibilidade de números binários negativos, sendo assim consideramos o conjunto de números inteiros positivos e negativos como conjunto denominado de inteiros com sinal. O problema de para representarmos inteiros com sinal é justamente o sinal, para isso utilizamos o método de magnitude com sinal. Como sugere o nome, um número de magnitude com sinal possui um sinal no seu bit mais à esquerda (conhecido também como bit mais significativo). Por exemplo: Considerando uma inteiro de 8 bits: 1 seria representado como 10000001 + 1 seria representado como 00000001 Em um sistema de computação que use a representação de magnitude com sinal e 8 bits para armazenar inteiros, 7 bits podem ser usados para representação da magnitude do número. Isto significa que o maior inteiro que pode ser representado com 8 bits é 2 7 1 = 127, já o menor inteiro que pode ser representado com 8 bits é 127. Computadores executam cálculos matemáticos com inteiros, a aritmética de magnitude com sinal é realizada usando-se essencialmente os mesmos métodos que os humanos usam com lápis e papel. Considerando as regras: (1) Se os sinais são iguais, adicione as magnitudes e use o mesmo sinal para o resultado (2) Se os sinais são diferentes, você deve determinar qual operando tem a magnitude maior. O sinal do resultado é o mesmo sinal do operando de maior magnitude, e a magnitude deve ser obtida subtraindo (e não somando) o maior do menor. Ao exemplificar esta ideia com um inteiro de 8 bits, temos que ter cuidado de incluir somente 7 bits na magnitude da resposta, descartando os carries ( vai um ) que ocorrem para o bit de mais alta ordem. Veja: Somando 01001111 2 com 00100011 2 utilizando aritmética de magnitude com sinal temos: A aritmética segue como na adição decimal, incluindo os carries, até que seja atigindo o sétimo bit a partir da direita. Se houver um carry aqui, dizemos que temos uma condição de overflow e o carry é descartado, resultando em uma soma incorreta. Exemplo de overflow: Somando 01001111 2 com 01100011 2 utilizando aritmética de magnitude com sinal temos:

Assim como na adição a subtração em magnitude com sinal é realizada de maneira similar à lápis e papel na aritmética decimal, na qual algumas vezes é necessário pedir emprestado dígitos do minuendo. Veja os exemplos a seguir: Subtraindo 01001111 2 com 01100011 2 utilizando aritmética de magnitude com sinal temos: Somando 10010011 2 (-19) com 01100011 2 (+13) utilizando aritmética de magnitude com sinal temos: Obs: O primeiro número (o aditivo) é negativo porque seu bit se sinal está configurado como 1. O segundo número (o adendo) é positivo. O que devemos fazer de fato é uma subtração. Primeiro determinamos qual dos dois é maior em magnitude e usamos este número como o aditivo. Seu sinal será o sinal do resultado. Subtraindo 10011000 2 (-24) com 10101011 2 (-43) utilizando aritmética de magnitude com sinal temos: