Aula 10: Outras Formas de Representação

Documentos relacionados
Introdução à Ciência da Computação

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária

Sistemas numéricos e a Representação Interna dos Dado no Computador

Aula 9: Estouro e Representação em Ponto Flutuante

14/03/2011. A INFORMAÇÃO E SUA REPRESENTAÇÃO (Parte I)

Unidade III. Sistemas Numéricos e o Computador

Representação da Informação

Eletrônica Digital Apresentação e Cap.1 PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

Sistemas de Numeração

Organização e Arquitetura de Computadores I

HARDWARE SISTEMA NUMÉRICO E CODIFICAÇÃO. Wagner de Oliveira

11 a EDIÇÃO SISTEMAS DIGITAIS

Introdução à Computação: Sistemas de Numeração

Aula 7: Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

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

Códigos. Códigos. Bits, Bytes & etc. 9/20/10

Representação das Informações

Estouro e Representação em Ponto Flutuante

Paradigmas de Linguagens

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À ORGANIZAÇÃO PARA ENGENHARIA DE COMPUTADORES. Prof. Dr. Daniel Caetano

Neste tópico veremos:

Sistemas de Numeração. Sistemas de Numeração. Sistemas de Numeração. RUIDO em Sistemas Computacionais. Arquiteturas de Computadores

Aula 4: Bases Numéricas

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Unidade 1: O Computador

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Módulo 5 Codificação Sistemas Multimédia Ana Tomé José Vieira

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária

Sistemas de Numeração

Introdução. à Ciência da. Representação de Números em Ponto Flutuante. Aula 21. Números Fracionários

Sistemas Numéricos e o Computador

Objetivo. Sistemas de Numeração e Códigos. Apresentar técnicas de representação e converção de números em diversos sistemas de numeração.

Sistema de memória e suas características

Sistemas Digitais Representação Digital de Informação

Aula de hoje. Códigos numéricos. Códigos binários. Armazenamento de dados. Armazenamento de dados. Armazenamento de dados

Representação de Dados (inteiros não negativos)

Aula 12: Memória: Barramentos e Registradores

Conversão de Bases. Introdução à Organização de Computadores 5ª Edição/2007 Página 54. Sistemas Numéricos - Aritmética. Prof.

Aula 8: Complemento a Um e Complemento a Dois

Organização e Arquitetura de Computadores I

Processador: Conceitos Básicos e Componentes

Representação de Dados (inteiros não negativos)

Sistemas Digitais Representação Digital de Informação

Dessa forma pode-se transformar qualquer número em qualquer base para a base 10.

Organização de Computadores I

Introdução. Universidade Federal de Campina Grande. A Informação e sua Representação (Parte I) Centro de Engenharia Elétrica e Informática

MANUTENÇÃO DE COMPUTADORES SISTEMAS NUMÉRICOS

Sistemas Numéricos - Aritmética. Conversão de Bases. Prof. Celso Candido ADS / REDES / ENGENHARIA

Bits e operações. Sistemas de Computação

Home Programa Exercícios Provas Professor Links. 2.1 Representação de um número na base dois. O número binário 101,101 significa, na base dois:

Prof. Leonardo Augusto Casillo

TP062-Métodos Numéricos para Engenharia de Produção Erros-Ponto Flutuante

Unidade 2: Introdução à Organização de Computadores Prof. Daniel Caetano

Unidades de Medidas Computacionais

4 Variáveis. Unesp Campus de Guaratinguetá

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES SISTEMAS DE COMPUTAÇÃO. Cristina Boeres

REPRESENTAÇÃO DE DADOS. Prof. Maicon A. Sartin

Representação da Informação no Computador

Binário Decimal

Sistemas Digitais INE 5406

Ponto Fixo e Ponto Flutuante

Unidade 4: Conversões e Cálculos em Outras Bases Prof. Daniel Caetano

Fundamentos de Programação. Introdução

Os Computadores. A Informação nos Computadores

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Arquitetura de computadores BASE NUMÉRICAS

Para essa conversão utiliza-se o valor posicional

3. Componentes de um computador e periféricos

Complemento a Um e Complemento a Dois

Arquitetura de Computadores Sistema de Numeração. Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão

FACULDADE PITÁGORAS PRONATEC

Aula 5: Conversões Entre Bases Numéricas

Arquitetura e Organização de Computadores

Aula 16: UCP: Conceitos Básicos e Componentes

Cálculo Numérico IPRJ/UERJ. Sílvia Mara da Costa Campos Victer ÍNDICE. Aula 1- Introdução. Representação de números. Conversão de números

Docentes. Regras de Avaliação

Números Binários. Apêndice A V1.0

Fundamentos de Programação Introdução

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

GFM015 Introdução à Computação

Aula 3 - Representação de Dados

Linguagem de Maquina II. Visão Geral

Códigos Especiais. Tiago Dezuo DEE - Engenharia Elétrica CCT. ALB0001 Álgebra de Boole JOINVILLE

Introdução à Computação MAC0110

Introdução à Computação

Representação de Dados e Sistemas de Numeração

Aula 11: Memória Principal: Conceitos Básicos e Organização

Circuitos Combinacionais. Arquitetura de Computadores I

Sistemas Numéricos e Representação de Dados. Heitor S. Ramos

confrontamos são de natureza analógica (e.g. A generalidade das grandezas com que nos Noções elementares de electrónica digital - 2

Cálculo Numérico Conceitos Básicos

Sistema Supervisório - IHM

Organização de Computadores I

Lógica Matemática Elementos de Lógica Digital. Sistema de numeração 09/08/2016 1

EXPRESSÕES RELACIONAIS

Arquitetura de Computadores. Conjunto de Instruções

Introdução à Computação

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES REPRESENTAÇÃO NUMÉRICA. Cristina Boeres

Transcrição:

Aula 10: Outras Formas de Representação Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Outras Formas de Representação FAC 1 / 37

Outros Esquemas de Representação Numérica Diego Passos (UFF) Outras Formas de Representação FAC 2 / 37

Introdução Já vimos vários esquemas de representação numérica Sinal e Magnitude Representação em Excesso Complemento a Um Complemento a Dois Ponto Flutuante A grande maioria dos computadores modernos utiliza um ou mais destes esquemas Tipicamente, Ponto Flutuante e Complemento a Dois Mas existem algumas aplicações/arquiteturas específicas que usam outros esquemas Diego Passos (UFF) Outras Formas de Representação FAC 3 / 37

Binary-Coded Decimal Popularmente conhecido pela sigla BCD Ideia é simples: Representar número em base 10 Cada algarismo da representação decimal é traduzido para um conjunto de bits Números são representados pela combinação destas representações dos seus algarismos decimais Possível codificação dos algarismos Base 10 BCD Base 10 BCD 0 0000 5 0101 1 0001 6 0110 2 0010 7 0111 3 0011 8 1000 4 0100 9 1001 Exemplo de uso: 473 (10) = 0100 0111 0011 4 7 3 Diego Passos (UFF) Outras Formas de Representação FAC 4 / 37

Binary-Coded Decimal: Packed vs Uncompressed É possível representar qualquer algarismo decimal com 4 bits 16 valores possíveis No entanto, computadores geralmente trabalham com bytes de 8 bits Algumas implementações do BCD usam 8 bits para cada algarismo Uncompressed BCD 4 bits mais significativos são ignorados ou usados para codificar outras informações Códigos de erro, sinal, Para reduzir número de bits usados, a alternativa é o packed BCD Cada algarismo decimal é representado por 4 bits Cada byte representa um par de algarismos decimais Diego Passos (UFF) Outras Formas de Representação FAC 5 / 37

Binary-Coded Decimal: Números Negativos Números negativos também podem ser representados em BCD Representações seguem mesmas ideias usadas com bits Sinal e Magnitude: Um bit (ou um nibble ou um byte) representa o sinal Complemento a 9 Diego Passos (UFF) Outras Formas de Representação FAC 6 / 37

Binary-Coded Decimal: Números Não-Inteiros Da mesma forma que podemos representar não-inteiros com bits, podemos fazê-lo com BCD Duas alternativas comuns: Ponto fixo: local da vírgula é arbitrado e fixo Ponto flutuante: número é armazenado em notação científica normalizada Conjuntos de algarismos BCD para mantissa e expoente Diego Passos (UFF) Outras Formas de Representação FAC 7 / 37

Binary-Coded Decimal: Vantagens e Desvantagens Por que alguém usaria o BCD? Em última instância, estamos novamente armazenando bits Porque há algumas vantagens: Representação finita para alguns números fracionários Valores tipicamente importantes para nós: eg, dinheiro Facilidade de escala por potências de 10 Facilidade de arredondamento em casas decimais Facilidade de conversão para caracteres Mas há também desvantagens: Hardware mais complexo para operações aritméticas Desperdício de bits Diego Passos (UFF) Outras Formas de Representação FAC 8 / 37

Binary-Coded Decimal: Usos Já foi mais popular Mas hoje ainda encontra aplicações: ICs que manipulam datas Vários displays recebem BCD como entrada BIOS (também em relação à data) Processamento de dados financeiros Um uso inusitado: relógios binários Diego Passos (UFF) Outras Formas de Representação FAC 9 / 37

Usando Inteiros Binários para Representar Valores Fracionários Maior parte dos computadores modernos não suporta nativamente operações em BCD Podem ser implementadas em software Mas são mais lentas Se precisamos garantir precisão decimal (com um número conhecido de casas) podemos empregar uma alternativa Representamos valores como inteiros Mas todo valor é multiplicado por 10 elevado ao número de casas pretendido Exemplo: representação de números fracionários com até três casas decimais depois da vírgula 15,678 (10) é representado como o inteiro 15678 em binário Todas as operações básicas podem ser realizadas sobre os valores inteiros, mantendo as representações finitas Desde que sejam finitas em base 10 Deve-se tomar cuidado com a posição da vírgula em multiplicações e com a aplicação de critérios de arredondamento Diego Passos (UFF) Outras Formas de Representação FAC 10 / 37

Representação de Texto Diego Passos (UFF) Outras Formas de Representação FAC 11 / 37

Codificações de Texto Em última análise, todo dado representado em um computador é formado por um conjunto de bits Conjuntos de bits formam números escritos na base 2 Logo, qualquer tipo de dado precisa ser codificado como um número Ou um conjunto destes Isto não é diferente com dados textuais Associamos caracteres a números Conjuntos de caracteres (palavras, frases, ) são representados como conjuntos destes números Há várias codificações diferentes para caracteres Diego Passos (UFF) Outras Formas de Representação FAC 12 / 37

A Codificação ASCII Abreviação de American Standard Code for Information Interchange Codificação baseada no alfabeto inglês Total de 128 caracteres Letras maiúsculas e minúsculas Algarismos decimais Pontuações Caracteres de controle (eg, quebra de linha) Cada caracter corresponde a uma sequência de 7 bits Computadores que usam bytes de 8 bits armazenam caracteres em bytes individuais Bit mais significativo é sempre 0 Até 2008, codificação mais comum na Web Diego Passos (UFF) Outras Formas de Representação FAC 13 / 37

A Tabela ASCII Decimal Hex Char Decimal Hex Char Decimal Hex Char Decimal Hex Char Diego Passos (UFF) Outras Formas de Representação FAC 14 / 37

A Codificação ASCII: Propriedades A codificação ASCII tem algumas propriedades interessantes Propositais, não resultantes do acaso Os algarismos correspondem a valores binários iguais a eles próprios acrescidos do prefixo 011 eg, 0 corresponde a 0110000 eg, 9 corresponde a 0111001 Letras aparecem em ordem Simplifica comparação e ordenação Maiúsculas e minúsculas diferem sempre por 32 eg, A corresponde a 65, a corresponde a 97 Diferem apenas no sexto bit Simplifica comparações insensíveis a caixa, e transformações entre maiúsculas e minúsculas Diego Passos (UFF) Outras Formas de Representação FAC 15 / 37

ASCII Estendido A disponibilidade de um bit na codificação ASCII e a falta de certos caracteres resultaram em extensões Há várias Algumas padronizadas, outras proprietárias Uma bastante utilizada é a ISO 8859-1 Popularmente chamada de Latin-1 Contém letras acentuadas usadas em línguas da Europa Ocidental Diego Passos (UFF) Outras Formas de Representação FAC 16 / 37

A Codificação UTF-8 Universal Character Set + Transformation Format 8-bit Uma das codificações propostas no padrão Unicode Representa todos os caracteres/símbolos usados em sistemas de escrita no mundo Usa um número variável de bytes De um a quatro, dependendo do caracter Superconjunto da ASCII Codificação dominante hoje na Web Diego Passos (UFF) Outras Formas de Representação FAC 17 / 37

Codificação de Outros Tipos de Dados Diego Passos (UFF) Outras Formas de Representação FAC 18 / 37

Codificação de Imagens Outro tipo de dados muito comum hoje são as imagens Assim como fazemos com texto, imagens são quebradas em uma unidade específica O pixel: um ponto na imagem Cada pixel contém uma cor Ou uma intensidade de cinza Através da composição de pixels (pontos relativamente pequenos), obtemos imagens complexas Diego Passos (UFF) Outras Formas de Representação FAC 19 / 37

Codificação de Imagens: Representando um Pixel Há vários esquemas de representação de pixels Para imagens em tons de cinza, uma abordagem simples é utilizar um byte para a representação Valores inteiros de 0 (preto) até 255 (branco) Valores intermediários representam tons de cinza Quanto mais próximos de 255, mais claros Para imagens coloridas, é comum usar o modelo RGB com três bytes Cor é dividida em três componentes: vermelho, verde e azul Intensidades de cada componente são representadas por valores de 0 a 255 Diego Passos (UFF) Outras Formas de Representação FAC 20 / 37

Codificação de Imagens: Compressão Imagens tendem a ser arquivos relativamente grandes Por isso, é comum que estas não sejam armazenadas simplesmente como uma sequência de pixels Mais comumente, algum método de compressão é aplicado Imagens são colocadas em algum formato que determina como pixels são comprimidos JPEG PNG Diego Passos (UFF) Outras Formas de Representação FAC 21 / 37

Outros Tipos de Dados Outros tipos de dados comumente manipulados por computadores incluem: Áudio Vídeo Datas e horários Em última análise, estes dados são representados como números em base 2 A partir das representações básicas já vistas, é possível construir estruturas de dados complexas eg, cadastro pessoal em uma empresa Diego Passos (UFF) Outras Formas de Representação FAC 22 / 37

Arquivos e Registros É comum precisarmos trabalhar com conjuntos de dados de um mesmo tipo Ao invés de um único exemplar Exemplos: Conjunto de empregados de uma empresa Conjunto de operações em uma conta bancária Conjunto de instruções em um programa Por isso, muitas vezes deseja-se agrupar estes dados em uma mesma unidade Para armazenamento ou processamento Diego Passos (UFF) Outras Formas de Representação FAC 23 / 37

Arquivos e Registros (II) Neste contexto, surge o conceito de um arquivo Definição Conjunto de dados (ou informações) de um mesmo tipo para uma mesma aplicação Arquivos normalmente estão associados a uma determinada aplicação ou um determinado tipo de dado Exemplos: Arquivo de cadastro de alunos Arquivo de imagem Arquivo executável Diego Passos (UFF) Outras Formas de Representação FAC 24 / 37

Arquivos e Registros (III) Arquivos são organizados em registros Unidade do tipo de informação armazenado eg, alunos individuais em base de alunos Registros podem ter tamanho fixo ou variável Registro 0 Registro 1 Registro 2 Registro (n-2) Registro (n-1) Registro n Diego Passos (UFF) Outras Formas de Representação FAC 25 / 37

Arquivos e Registros (IV) Muitos arquivos contém também um cabeçalho Conjunto de informações que explicam o arquivo Em alguns contextos, chamado de metadados Podem informar, por exemplo, o número de registros, variações do formato, Exemplos de arquivos com cabeçalho: Arquivos doc Arquivos jpg Arquivos mp3 Cabeçalho Registro 0 Registro (n-2) Registro (n-1) Registro n Diego Passos (UFF) Outras Formas de Representação FAC 26 / 37

Arquivos e Registros (V) Arquivos normalmente tem por objetivo o armazenamento não-volátil Dados não devem ser perdidos depois que um programa os processa Dados de um arquivo devem ser disponíveis para outros programas ou para outras execuções de um mesmo programa Por este motivo, arquivos costumam ser armazenados em memória secundária Tipicamente não-volátil HDs, pendrives, cartões de memória, fitas magnéticas, Arquivos também são trocados entre computadores Transmitidos por rede Lidos ou escritos de dispositivos portáteis Diego Passos (UFF) Outras Formas de Representação FAC 27 / 37

Endianness Diego Passos (UFF) Outras Formas de Representação FAC 28 / 37

Motivação Imagine a seguinte tarefa: Alguém lhe dá um conjunto de blocos de madeira com algarismos Pede para que você escreva o número 4237 na vertical Como você o escreve? Diego Passos (UFF) Outras Formas de Representação FAC 29 / 37

Motivação (II) A analogia, embora simplória, se aplica aos computadores Neste caso, os blocos são células de memória Os algarismos são os números (conjuntos de bits) escritos nestas células Considere um computador que armazena dados em células de um byte, por exemplo Deseja-se escrever um número composto por 4 bytes Precisamos de quatro células contíguas Digamos, as células n, n + 1, n + 2 e n + 3 Em que ordem colocamos os bytes nestas posições? Diego Passos (UFF) Outras Formas de Representação FAC 30 / 37

Motivação (III) Embora pareça uma decisão irrelevante, hoje esta ordem é bastante importante Com a facilidade da Internet, transferir dados entre computadores diferentes se tornou comum Para interpretar corretamente estes dados, ambos os lados precisam estar de acordo em relação a esta ordem de bytes A questão poderia ser trivialmente resolvida se todos os computadores adotassem a mesma ordem Mas por razões históricas, arquiteturas diferentes empregam ordens diferentes Algumas, inclusive, suportam mais de uma ordem Diego Passos (UFF) Outras Formas de Representação FAC 31 / 37

Endianness: Definição A esta ordem de escrita dos dados em memória, damos o nome de Endianness Há dois tipos de endianness comumente adotados: Big-endian: partes mais significativas do dado são armazenadas em posições de memória menores ie, começamos pela parte mais significativa Little-endian: partes menos significativas do dado são armazenadas em posições de memória menores ie, começamos pela parte menos significativa Diego Passos (UFF) Outras Formas de Representação FAC 32 / 37

Endianness: Exemplo Suponha que desejemos escrever o número 0A0B0C0D Sequência de 4 bytes descrita em hexadecimal Suponha que cada célula do nosso computador armazena um byte Big-endian: Endereços Crescem 0A 0B 0C 0D n n+1 n+2 n+3 Little-endian: Endereços Crescem 0D 0C 0B 0A n n+1 n+2 n+3 Diego Passos (UFF) Outras Formas de Representação FAC 33 / 37

Endianness: Exemplo (II) Mesma situação, mas cada célula guarda dois bytes Big-endian: Endereços Crescem Little-endian: Endereços Crescem 0A 0B 0C 0D 0C 0D 0A 0B n n+1 n n+1 Diego Passos (UFF) Outras Formas de Representação FAC 34 / 37

Endianness: Garantindo Compatibilidade Como garantir que máquinas com endianness diferentes possam trocar informações corretamente? Se a troca é feita por arquivos, em geral há uma padronização do endianness Exemplos: Arquivos JPEG usam Big-endian Arquivos zip usam Little-endian Se a troca de dados é feita através de rede, o padrão é padrão é usar Big-endian Por este motivo, o Big-endian é também conhecido como Network Byte Order Diego Passos (UFF) Outras Formas de Representação FAC 35 / 37

Endianness: Garantindo Compatibilidade (II) O endianness acordado deve ser usado independente do endianness do computador Se forem igual, nada precisa ser feito Mas se forem diferentes, dados precisam ser traduzidos para o endianness acordado Ordem de bytes é trocada para cada dado Incompatibilidade de endianness é uma razão comum de bugs em software Aplicações que utilizam arquivos ou comunicação em rede Diego Passos (UFF) Outras Formas de Representação FAC 36 / 37

Exercício Consulte a tabela ASCII e escreva seu nome completo convertendo letras e espaços para os bytes correspondentes Diego Passos (UFF) Outras Formas de Representação FAC 37 / 37