View
3
Download
0
Category
Preview:
Citation preview
Aula 10: Outras Formas de Representacao
Fernanda Passos
Universidade Federal Fluminense
Fundamentos de Arquiteturas de Computadores
Material baseado nos slides do prof. Diego Passos
Fernanda Passos (UFF) Outras Formas de Representacao FAC 1 / 33
Outros Esquemas de Representacao Numerica
Fernanda Passos (UFF) Outras Formas de Representacao FAC 2 / 33
Introducao
Ja vimos varios esquemas de representacao numerica.I Sinal e Magnitude.I Representacao em Excesso.I Complemento a Um.I Complemento a Dois.I Ponto Flutuante.
A grande maioria dos computadores modernos utiliza um ou mais destes esquemas.I Tipicamente, Ponto Flutuante e Complemento a Dois.
Mas existem algumas aplicacoes/arquiteturas especıficas que usam outros esquemas.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 3 / 33
Binary-Coded Decimal
Popularmente conhecido pela sigla BCD.Ideia e simples:
I Representar numero em base 10.I Cada algarismo da representacao decimal e traduzido para um conjunto de bits.I Numeros sao representados pela combinacao destas representacoes dos seus algarismos
decimais.
Possıvel codificacao dos algarismos.
Base 10 BCD Base 10 BCD0 0000 5 01011 0001 6 01102 0010 7 01113 0011 8 10004 0100 9 1001
Exemplo de uso:
473(10) = 0100 0111 0011
4 7 3
Fernanda Passos (UFF) Outras Formas de Representacao FAC 4 / 33
Binary-Coded Decimal : Vantagens e Desvantagens
Por que alguem usaria o BCD?I Em ultima instancia, estamos novamente armazenando bits.
Porque ha algumas vantagens:I Representacao finita para alguns numeros fracionarios.
F Valores tipicamente importantes para nos: e.g., dinheiro.I Facilidade de escala por potencias de 10.I Facilidade de arredondamento em casas decimais.I Facilidade de conversao para caracteres.
Mas ha tambem desvantagens:I Hardware mais complexo para operacoes aritmeticas.I Desperdıcio de bits.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 5 / 33
Binary-Coded Decimal : Usos
Ja foi mais popular.Mas hoje ainda encontra aplicacoes:
I ICs (circuitos integrados) que manipulamdatas.
I Varios displays recebem BCD comoentrada.
I BIOS (tambem em relacao a data).I Processamento de dados financeiros.
Um uso inusitado: relogios binarios.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 6 / 33
Representacao de Texto
Fernanda Passos (UFF) Outras Formas de Representacao FAC 7 / 33
Codificacoes de Texto
Em ultima analise, todo dado representado em um computador e formado por um conjuntode bits.Conjuntos de bits formam numeros escritos na base 2.Logo, qualquer tipo de dado precisa ser codificado como um numero.
I Ou um conjunto destes.Isto nao e diferente com dados textuais.
I Associamos caracteres a numeros.I Conjuntos de caracteres (palavras, frases, . . . ) sao representados como conjuntos destes
numeros.Ha varias codificacoes diferentes para caracteres.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 8 / 33
A Codificacao ASCII
Abreviacao de American Standard Code for Information Interchange.Codificacao baseada no alfabeto ingles.Total de 128 caracteres.
I Letras maiusculas e minusculas.I Algarismos decimais.I Pontuacoes.I Caracteres de controle (e.g., quebra de linha).I . . .
Cada caracter corresponde a uma sequencia de 7 bits.I Computadores que usam bytes de 8 bits armazenam caracteres em bytes individuais.I Bit mais significativo e sempre 0.
Ate 2008, codificacao mais comum na Web.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 9 / 33
A Tabela ASCII
Decimal Hex Char Decimal Hex Char Decimal Hex Char Decimal Hex Char
Fernanda Passos (UFF) Outras Formas de Representacao FAC 10 / 33
A Codificacao ASCII: Propriedades
A codificacao ASCII tem algumas propriedades interessantes.I Propositais, nao resultantes do acaso.
Os algarismos correspondem a valores binarios iguais a eles proprios acrescidos do prefixo011.
I e.g., ‘0’ corresponde a 0110000.I e.g., ‘9’ corresponde a 0111001.
Letras aparecem em ordem.I Simplifica comparacao e ordenacao.
Maiusculas e minusculas diferem sempre por 32.I e.g., ‘A’ corresponde a 65, ‘a’ corresponde a 97.I Diferem apenas no sexto bit.I Simplifica comparacoes insensıveis a caixa, e transformacoes entre maiusculas e minusculas.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 11 / 33
ASCII Estendido
A disponibilidade de um bit na codificacao ASCII e a falta de certos caracteres resultaramem extensoes.
I Ha varias.I Algumas padronizadas, outras proprietarias.
Uma bastante utilizada e a ISO 8859-1.I Popularmente chamada de Latin-1.I Contem letras acentuadas usadas em lınguas da Europa Ocidental.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 12 / 33
A Codificacao UTF-8
Universal Character Set + Transformation Format – 8-bit.Uma das codificacoes propostas no padrao Unicode
I Representa “todos” os caracteres/sımbolos usados em sistemas de escrita no mundo.Usa um numero variavel de bytes.
I De 1 a 4, dependendo do caractere.I ASCII: 1 byte;I Caracteres diacrıticos (que possuem sinais que modificam o sımbolo, e.g. acentos) como
latino, grego, cirılico, armenio e hebraico: 2 bytes.I Outras lınguas: 3 bytes.I Existem ainda outros caracteres que necessitam de 4 bytes.
Superconjunto da ASCII.Codificacao dominante hoje na Web.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 13 / 33
Codificacao de Outros Tipos de Dados
Fernanda Passos (UFF) Outras Formas de Representacao FAC 14 / 33
Codificacao de Imagens
Outro tipo de dados muito comum hoje sao as imagens.Assim como fazemos com texto, imagens sao quebradas em uma unidade especıfica.
I O pixel : um ponto na imagem.Cada pixel contem uma cor.
I Ou uma intensidade de cinza.Atraves da composicao de pixels (pontos relativamente pequenos), obtemos imagenscomplexas.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 15 / 33
Codificacao de Imagens: Representando um Pixel
Ha varios esquemas de representacao de pixels.Para imagens em tons de cinza, uma abordagem simples e utilizar um byte para arepresentacao.
I Valores inteiros de 0 (preto) ate 255 (branco).I Valores intermediarios representam tons de cinza.
F Quanto mais proximos de 255, mais claros.Para imagens coloridas, e comum usar o modelo RGB com tres bytes.
I Cor e dividida em tres componentes: vermelho, verde e azul.I Intensidades de cada componente sao representadas por valores de 0 a 255.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 16 / 33
Codificacao de Imagens: Compressao
Imagens tendem a ser arquivos relativamente grandes.Por isso, e comum que estas nao sejam armazenadas simplesmente como uma sequencia depixels.Mais comumente, algum metodo de compressao e aplicado.Imagens sao colocadas em algum formato que determina como pixels sao comprimidos.
I JPEG.I PNG.I . . .
Fernanda Passos (UFF) Outras Formas de Representacao FAC 17 / 33
Outros Tipos de Dados
Outros tipos de dados comumente manipulados por computadores incluem:I Audio.I Vıdeo.I Datas e horarios.I . . .
Em ultima analise, estes dados sao representados como numeros em base 2.A partir das representacoes basicas ja vistas, e possıvel construir estruturas de dadoscomplexas.
I e.g., cadastro pessoal em uma empresa.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 18 / 33
Arquivos e Registros
E comum precisarmos trabalhar com conjuntos de dados de um mesmo tipo.I Ao inves de um unico exemplar.
Exemplos:I Conjunto de empregados de uma empresa.I Conjunto de operacoes em uma conta bancaria.I Conjunto de instrucoes em um programa.
Por isso, muitas vezes deseja-se agrupar estes dados em uma mesma unidade.I Para armazenamento ou processamento.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 19 / 33
Arquivos e Registros (II)
Neste contexto, surge o conceito de um arquivo.
DefinicaoConjunto de dados (ou informacoes) de um mesmo tipo para uma mesma aplicacao.
Arquivos normalmente estao associados a uma determinada aplicacao ou um determinadotipo de dado.Exemplos:
I Arquivo de cadastro de alunos.I Arquivo de imagem.I Arquivo executavel.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 20 / 33
Arquivos e Registros (III)
Arquivos sao organizados em registros.I Unidade do tipo de informacao armazenado.I e.g., alunos individuais em base de alunos.
Registros podem ter tamanho fixo ou variavel.
...
Registro 0
Registro 1
Registro 2
Registro (n-2)
Registro (n-1)
Registro n
Fernanda Passos (UFF) Outras Formas de Representacao FAC 21 / 33
Arquivos e Registros (IV)
Muitos arquivos contem tambem um cabecalho.I Conjunto de informacoes que explicam o arquivo.
F Em alguns contextos, chamado de metadados.I Podem informar, por exemplo, o numero de
registros, variacoes do formato, . . .Exemplos de arquivos com cabecalho:
I Arquivos .doc.I Arquivos .jpg.I Arquivos .mp3.I . . .
...
Cabeçalho
Registro 0
Registro (n-2)
Registro (n-1)
Registro n
Fernanda Passos (UFF) Outras Formas de Representacao FAC 22 / 33
Arquivos e Registros (V)
Arquivos normalmente tem por objetivo o armazenamento nao-volatil.I Dados nao devem ser perdidos depois que um programa os processa.I Dados de um arquivo devem ser disponıveis para outros programas ou para outras execucoes
de um mesmo programa.Por este motivo, arquivos costumam ser armazenados em memoria secundaria.
I Tipicamente nao-volatil.I HDs, pendrives, cartoes de memoria, fitas magneticas,. . .
Arquivos tambem sao trocados entre computadores.I Transmitidos por rede.I Lidos ou escritos de dispositivos portateis.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 23 / 33
Endianness
Fernanda Passos (UFF) Outras Formas de Representacao FAC 24 / 33
Motivacao
Imagine a seguinte tarefa:I Alguem lhe da um conjunto de blocos de madeira com
algarismos.I Pede para que voce escreva o numero 4237 na vertical.I Como voce o escreve?
Fernanda Passos (UFF) Outras Formas de Representacao FAC 25 / 33
Motivacao (II)
A analogia, embora simploria, se aplica aos computadores.I Neste caso, os blocos sao celulas de memoria.I Os algarismos sao os numeros (conjuntos de bits) escritos nestas celulas.
Considere um computador que armazena dados em celulas de um byte, por exemplo.Deseja-se escrever um numero composto por 4 bytes.
I Precisamos de quatro celulas contıguas.I Digamos, as celulas n, n + 1, n + 2 e n + 3.
Em que ordem colocamos os bytes nestas posicoes?
Fernanda Passos (UFF) Outras Formas de Representacao FAC 26 / 33
Motivacao (III)
Embora pareca uma decisao irrelevante, hoje esta ordem e bastante importante.I Com a facilidade da Internet, transferir dados entre computadores diferentes se tornou comum.I Para interpretar corretamente estes dados, ambos os lados precisam estar de acordo em relacao
a esta ordem de bytes.A questao poderia ser trivialmente resolvida se todos os computadores adotassem a mesmaordem.
I Mas por razoes historicas, arquiteturas diferentes empregam ordens diferentes.I Algumas, inclusive, suportam mais de uma ordem.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 27 / 33
Endianness: Definicao
A esta ordem de escrita dos dados em memoria, damos o nome de Endianness.Ha dois tipos de endianness comumente adotados:
I Big-endian: partes mais significativas do dado sao armazenadas em posicoes de memoriamenores.
F i.e., comecamos pela parte mais significativa.I Little-endian: partes menos significativas do dado sao armazenadas em posicoes de
memoria menores.F i.e., comecamos pela parte menos significativa.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 28 / 33
Endianness: Exemplo
Suponha que desejemos escrever o numero 0A0B0C0D.I Sequencia de 4 bytes descrita em hexadecimal.
Suponha que cada celula do nosso computador armazena um byte.
Big-endian:
... 0A 0B 0C 0D ...
Endereços Crescem
n n+1 n+2 n+3
Little-endian:
... 0D 0C 0B 0A ...
Endereços Crescem
n n+1 n+2 n+3
Fernanda Passos (UFF) Outras Formas de Representacao FAC 29 / 33
Endianness: Exemplo (II)
Mesma situacao, mas cada celula guarda dois bytes.
Big-endian:
... 0A 0B 0C 0D ...
Endereços Crescem
n n+1
Little-endian:
... 0D0C 0B0A ...
Endereços Crescem
n n+1
Fernanda Passos (UFF) Outras Formas de Representacao FAC 30 / 33
Endianness: Garantindo Compatibilidade
Como garantir que maquinas com endianness diferentes possam trocar informacoescorretamente?Se a troca e feita por arquivos, em geral ha uma padronizacao do endianness.Exemplos:
I Arquivos JPEG usam Big-endian.I Arquivos .zip usam Little-endian.
Se a troca de dados e feita atraves de rede, o padrao e padrao e usar Big-endian.I Por este motivo, o Big-endian e tambem conhecido como Network Byte Order.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 31 / 33
Endianness: Garantindo Compatibilidade (II)
O endianness acordado deve ser usado independente do endianness do computador.I Se forem igual, nada precisa ser feito.I Mas se forem diferentes, dados precisam ser “traduzidos” para o endianness acordado.I Ordem de bytes e trocada para cada dado.
Incompatibilidade de endianness e uma razao comum de bugs em software.I Aplicacoes que utilizam arquivos ou comunicacao em rede.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 32 / 33
Exercıcio
Consulte a tabela ASCII e escreva seu nome completo convertendo letras e espacos para osbytes correspondentes.
Fernanda Passos (UFF) Outras Formas de Representacao FAC 33 / 33
Recommended