Buscar

APC Representação de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Computação Básica – carlacastanho@cic.unb.br 
Algoritmos e Programação de Computadores 
Disciplina: 116301 
 
 
Profa. Carla Denise Castanho 
Prof. Marcio Victorino 
 
 
Universidade de Brasília – UnB 
Instituto de Ciências Exatas – IE 
Departamento de Ciência da Computação – CIC 
 
1 
Computação Básica – carlacastanho@cic.unb.br 
2.3. Representação de Dados 
2 
Computação Básica – carlacastanho@cic.unb.br 3 
Todos os tipos de dados são armazenados nos dispositivos de 
memória do computador (Registradores, RAM, HD, etc) e operados 
no processador (ULA) na forma de bits. 
 
Veremos aqui apenas alguns tipos mais comuns: 
 
• Números Naturais (ℕ) 
• Números Inteiros (ℤ) 
• Números Reais (ℝ) 
• Caracteres 
• Sons 
• Imagens (cores) 
•.... 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 4 
•Números Naturais (ℕ) 
 
Os números naturais são representados naturalmente utilizando o 
sistema de numeração binário. 
 
As operações aritméticas de +, -, × e ÷ já foram estudadas. 
 
O computador consegue processar apenas dados representados com 
um número finito de bits. 
 
Ex.: 
Tipo em C tamanho faixa dinâmica 
(unsigned char) 8 bits 0 a 255 
(unsigned short) 16 bits 0 a 65.535 
(unsigned int) 32 bits 0 a 4.294.967.295 
(unsigned long long int) 64 bits 0 a 18.446.744.073.709.551.615 
 
Ex.: 100111002 = 15610 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 5 
• Realização das operações matemáticas usando o sistema 
binário. 
• Usa-se os mesmos algoritmos clássicos aprendidos para base 10 
Aritmética Computacional 
 
 Adição/subtração: Exatamente como base decimal (emprestar/vai 1s) 
 
 0011 0111 1100 0111 0110 0010 0100 
 + 0010 +1010 +1111 - 0110 - 0101 -0100  - 0010 
 0101 10001 11011 0001 0001 ? -0010 
 
 Multiplicação e Divisão: 
 
 0011 0111 10001001 |_110_ 
 x 0010 x 1110 - 110 10110 
 0000 0000 001010 
 0011 0111 - 110 
 0000 0111 1000 
 +0000___ + 0111___ - 110 
 0000110 1100010 0101 
 
 
 
Como representar o sinal? 
Computação Básica – carlacastanho@cic.unb.br 6 
•Números Inteiros (ℤ) 
 
Existem várias formas de representação de números inteiros com sinal. 
As mais comuns são: 
 
Sinal e magnitude : 
 Usa-se um símbolo específico para representar o sinal (-) ou 
 O MSB indica apenas o sinal (1 negativo, 0 positivo) 
 
Complemento de 1 : 
 A representação do número negativo é o inverso do positivo, isto 
é, troca-se 0  1 e 1  0 
 
Complemento de 2 : O mais utilizado hoje em dia 
 O MSB possui ponderação negativa. 
 A representação do número negativo é o inverso do positivo + 1 
 Ou é o complemento/diferença para o maior número. 
 
Obs.: Complemento de 10 como representação de números decimais negativos 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 7 
 Sinal e magnitude Complemento de um Complemento de dois 
 
 000 = +0 000 = +0 000 = +0 
 001 = +1 001 = +1 001 = +1 
 010 = +2 010 = +2 010 = +2 
 011 = +3 011 = +3 011 = +3 
 100 = -0 100 = -3 100 = -4 
 101 = -1 101 = -2 101 = -3 
 110 = -2 110 = -1 110 = -2 
 111 = -3 111 = -0 111 = -1 
Exemplos para números com 3 bits: 
Ex.: Em complemento de 2 
Tipo em C tamanho faixa dinâmica 
(char) 8 bits -128 a 127 
(short) 16 bits -32.768 a 32.767 
(int) 32 bits -2.147.483.648 a 2.147.483.647 
(long long int) 64 bits -9.223.372.036.854.775.808 a 
 9.223.372.036.854.775.807 
Ex.: 100111002 = -10010 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 8 
 Soma e subtração em Complemento de 2: 
 Exatamente como base decimal (emprestar/vai 1s) descartando o carry out 
 
 0011 0111 1100 0111 0110 0010 
 + 0010 +1010 +1111 - 0110 - 0101 -0100 
 0101 10001 11011 0001 0001 1110 
 
 Facilidade de operações do complemento de dois 
- subtração usando adição de números negativos 
 
 Overflow (resultado muito grande para a word finita do computador): 
 Somar dois números de n bits pode produzir um número de n+1 bits. 
 
 Obs.: 0101 = +5 1001 = -7 0110 = 6 
 + 0100 = +4 + 1010 = -6 - 1000 = -8 
 1001 ≠ 9 10011 ≠ -13 1110 ≠ 14 
 Note que o termo overflow não significa que um carry simplesmente “transbordou” 
 (n de bits do resultado > n bits das parcelas) 
 Mas sim que o resultado não “cabe” na faixa dinâmica de n bits!!! 
Aritmética Computacional 
 
Computação Básica – carlacastanho@cic.unb.br 
 Multiplicação e Divisão inteira em complemento de 2 
Os algoritmos clássicos apenas funcionam com números sem sinal. 
Logo devemos operar com os módulos dos operandos e ajustar o sinal do(s) 
resultado(s). 
 
 Ajuste do sinal do resultado da multiplicação: 
Basta verificar se os sinais do multiplicando e do multiplicador são iguais ou 
diferentes, definindo assim o sinal do produto. 
 
 Ajuste dos resultados da divisão: 
Precisamos definir o sinal do quociente e do resto. 
 Dividendo = Quociente x Divisor + Resto 
 72  7 = 3 x 2 + 1 
 (-7)  2  -7 = (-3) x 2 + (-1) OU -7 = (-4) x 2 +1 
 
Regra: 
 Quociente: Mesma regra da multiplicação . 
 Resto: Mesmo sinal do Dividendo. 
Aritmética Computacional 
 
9 
Computação Básica – carlacastanho@cic.unb.br 10 
•Números Reais (ℝ) 
 
Já estudamos a forma de representar números fracionários 
utilizando a notação de ponto fixo no sistema binário. 
 
 Ponto Fixo: 3,12510 = 11,0012 
 
Esta forma pode ser combinada com as formas de representação de 
números negativos a fim de representar os números reais. 
 
Ex.: Em 8 bits: -3,12510 = 10011,0012 : sinal e magnitude 
 -3,12510 = 11100,1112 : Complemento de 2 
 
Problema: Dado uma sequência de bits é necessário saber de 
previamente a posição da casa binária (virgula)! 
 
Ex.: 100111002 = ? 
 1,00111002 = -1+0,125+0,0625+0,03125=-0,7812510 
 10011,1002 = -16+2+1+0,5 = -12,5 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 11 
•Números Reais 
 
A fim de padronizar a representação de números reais e permitir 
um aumento significativo da faixa dinâmica, representa-se os 
números usando ponto flutuante, que é baseada na notação 
científica normalizada (1º dígito diferente de 0): 
 
 Ponto Fixo: -0,0023410 
 Ponto Flutuante: -2,34x10-3 
 
Notação Científica: sinal, mantissa e expoente 
 
Nos computadores usamos a notação científica binária e a 
representação de sinal e magnitude. 
 
Ex.: -1,010x2-2 = -0,010102 = -0,312510 = -(1+0,25)x2
-2 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 
 Representação: 
 - sinal(S), mantissa(M), expoente(E): 
 (–1)S  M 2E 
 - mais bits para a mantissa fornece mais precisão 
 - mais bits para o expoente aumenta a faixa dinâmica 
 
 Padrão de representação emponto flutuante IEEE 754: 
 - precisão simples: 32 bits Tipo em C (float) 
 
 
 
 
 - precisão dupla: 64 bits Tipo em C (double) 
 
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 
s expoente Fração 
1 bit 8 bits 23 bits 
 
 
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 
s expoente Fração 
1 bit 11 bits 20 bits 
Fração (continuação) 
32 bits 
Representação de Dados no Computador 
 
12 
Computação Básica – carlacastanho@cic.unb.br 
 O bit “1” inicial da mantissa está implícito (aumenta a precisão em 1 bit) 
 
 O expoente possui um off-set para facilitar os algoritmos de ordenação 
 - Off-set de 127 para precisão simples 
 e de 1023 para precisão dupla 
 - Formato: 
 (–1)sinal  (1 + fração)  2(expoente – offset) 
 Exemplos: 
 - decimal: -0,75 
 - ponto fixo (sinal e magnitude): -0,112 = -1,1  2
-1 notação científica 
 - ponto flutuante: expoente = 126 = 011111102 
 precisão simples IEEE: 1011 1111 0100 0000 0000 0000 0000 00002 
 0xBF400000 
 
 - decimal: 5,0 
 - ponto fixo (sinal e magnitude): 0101,02 = 1,01x2
2 notação científica 
 - ponto flutuante: expoente = 129 = 100000012 
 precisão simples IEEE: 0100 0000 1010 0000 0000 0000 0000 00002 
 0x40A00000 
13 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 
14 
 Dado o número em Ponto Flutuante IEEE754: 0xC1100000 
 qual o número decimal representado? 
 
 1100 0001 0001 0000 0000 0000 0000 0000 
 
1 10000010 00100000000000000000000 
 
Expoente = 130 - 127 = 3 
Mantissa: 1,001 
 
Logo: (-1)1 x 1,001 x 23 = - (1001.0) = -9,0 
 
 
 
Obs.: Generalizando 
Ax10B=Yx2X=2X+Z 
onde B e X são inteiros. 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 15 
 Como representar 0? 
Precisão Simples Precisão Dupla 
Objeto 
Expoente Fração Expoente Fração 
0 0 0 0 0 
0 ≠0 0 ≠0 ±Número 
desnormalizado 
1-254  1-2046  ±Número 
Ponto Flutuante 
255 0 2047 0 ± 
255 ≠0 2047 ≠0 NaN 
Qual a faixa dinâmica dos números representáveis em precisão simples e dupla? 
 
MAX_single: MIN_single: 
MAX_double: MIN_double: 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 16 
 Soma e subtração em IEEE 754: 
 Procedimento idêntico às operações em Notação Científica base 10. 
- Converte-se o número com menor expoente para igualar ao expoente do maior 
e soma-se (subtrai-se) as mantissas 
 
Ex.: Decimal 
 5,25x102 + 1,5x10-1 = 5,25x102 + 0,0015x102 = 5,2515x102 
 (4 dígitos) = 5,251x102 
 
Ex.: Binário 
 1,01x22 + 1,1x2-1 = 1,01x22 + 0,0011x22 = 1,01111x22 
 (4 bits) = 1,011x22 
 
Aritmética Computacional 
 
Computação Básica – carlacastanho@cic.unb.br 17 
Aritmética Computacional 
 
 Multiplicação e Divisão em IEEE 754: 
 Procedimento idêntico às operações em Notação Científica base 10: 
- Multiplica-se as mantissas e soma-se os expoentes ou 
- Divide-se as mantissas e subtrai-se os expoentes 
 
Ex.: Decimal 
 3,23x102 x 3,415x10-1 = 11,03045 x 101 
 (4 dígitos) = 1,103x102 
 
 Ex.: Binário 
 1,000x2-1 x (-1,110x2-2) =- 1,110000x2-3 
 (4 bits) = -1,110x2-3 
 
Overflow: |resultado| > MAX : |resultado|=infinito 
Underflow: |resultado| < MIN : |resultado|=0,0 
Computação Básica – carlacastanho@cic.unb.br 
Caracteres 
 A representação de caracteres no computador é feita associando-se 
sequências de bits a cada caracter particular. 
 Por necessidade de diálogos entre os diferentes computadores, foram 
criados diversos códigos objetivando a padronização. 
EBCDIC (Extended Binary Coded Decimal Interchange Code): 
Primeira tentativa de padronização da representação de caracteres. 
Criado pela IBM no início da década de 60 (usado até hoje em seus mainframes) 
Representa caracteres por códigos de 1 byte (8 bits). 
Representação de Dados no Computador 
 
ASCII (American Standard Code for Information Interchange): 
Criada por um comitê nacional (USA) em 1963 (revisado em 67 e 85). 
 Define uma tabela de equivalência entre 7 bits e um símbolo (caracteres 
alfabéticos, maiúsculos e minúsculos, algarismos, caracteres especiais, símbolos 
gráficos, e caracteres de controle de terminal/impressora). 
Computação Básica – carlacastanho@cic.unb.br 
 Tabela ASCII 
 O conjunto de 
códigos ASCII 
original possui 
128 símbolos 
(7 bits). 
Representação de Dados no Computador 
 
Os primeiros 32 são 
caracteres de 
controle de 
terminal/impressora 
Computação Básica – carlacastanho@cic.unb.br 
 Tabela ASCII 
 
Representação de Dados no Computador 
 
Os 32 símbolos 
seguintes são 
caracteres de 
pontuação e algarismos 
Computação Básica – carlacastanho@cic.unb.br 
 Tabela ASCII 
 
Representação de Dados no Computador 
 
Os 32 símbolos 
seguintes são as letras 
maiúsculas 
Computação Básica – carlacastanho@cic.unb.br 
 Tabela ASCII 
 
Representação de Dados no Computador 
 
Os últimos 32 
caracteres são as letras 
minúsculas 
Diferença entre A e a? 
Computação Básica – carlacastanho@cic.unb.br 
Representação de Dados no Computador 
 
 Porém 128 símbolos não são o suficiente! 
 Tabela ASCII Estendida: Os últimos 128 caracteres dependem da 
Aplicação/Sistema Operacional/País. Ex.: Série ISO 8859-x (16 tabelas diferentes!) 
 
8859-1 
Latim 1 
8859-2 
Latim 2 
8859-5 
Cyrillic 
MS-DOS- Code Page 437 
Computação Básica – carlacastanho@cic.unb.br 
 UNICODE: http://www.unicode.org/versions/Unicode6.0.0/ 
 É o padrão universal de codificação de caracteres 
 O Unicode fornece um número único para cada caractere, não 
importando a plataforma (a máquina e/ou sistema operacional em 
uso), o programa ou o idioma. 
 Foi desenvolvido para resolver problemas que existiam com outros 
sistemas de codificação, pois não eram suficientes para suportar 
todos os caracteres e idiomas existentes. 
 Sua criação foi baseada na tabela ASCII. 
 Permite definir caracteres cuja representação interna no 
computador utiliza mais de um byte (UTF-8), tais como: 
 16 bits (UTF-16) e 32 bits (UTF-32). 
 Vários sistemas operacionais, programas e browsers modernos 
suportam o Unicode. 
 Mostrar no Powerpoint inserir símbolo 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
tempo
25 
• Som: Red Book (padrão para CD de áudio) 
 
 44.1 kHz 
 16 bits 
 Estéreo 
Representação de Dados no Computador 
 
Amostragem 
Computação Básica – carlacastanho@cic.unb.br 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
tempo
26 
• Som: Red Book (padrão para CD de áudio) 
 
 44.1 kHz 
 16 bits 
 Estéreo 
 Uma amostra a 
cada 1/44100 s 
 
 16 bits/amostra 
(-32768 a 32767) 
 
 2 canais  
 
 
1.411.200 bits/ segundo 
Representação de Dados no Computador 
 
Amostragem e Quantização 
Vetor de amostras: [0000 3332 6665 7FFF 7FFF 4CCC ... ] 
Computação Básica – carlacastanho@cic.unb.br 
 Cor: geralmente especificadas por 3 ou 4 bytes, dependendo do 
sistema de representação utilizado. 
 No sistema RGB (Red - Green- Blue) cada componete básica 
determina a quantidade de luz, vermelha, verde e azul, que compõe 
determinada cor. 
 O valor de cada componente é normalmente representado com um 
número de 8 bits. Variam de 0x00 (ausência da cor) a 0xFF (maior 
intensidade da cor) 
 As componentes básicas podem ser combinadas, resultando em um 
total 256 x 256 x 256 = 16.777.216 possíveis cores neste sistema. 
 
 Exemplo: Na linguagem HTML 
 #FF0000 é vermelho 
 #00FF00 é verde 
 #0000FF é azul 
 #FFFF00 é amarelo 
 #000000 é preto (ausência das cores) 
 #FFFFFF é branco (a soma de todas as cores) 
Representação de Dados no Computador 
 
Computação Básica – carlacastanho@cic.unb.br 28 
• Imagem 
Matriz numérica (geralmente números naturais) 
Cada ponto da imagem chama-se pixel e possui uma cor (RGB) 
Representação de Dados no Computador 
 
8E4A7A C3AAC7 
BF9EB5 DABAC3 
Computação Básica – carlacastanho@cic.unb.br 29 
• CONCLUSÃO: 
 
 
Todo e qualquer tipo de dado é armazenado na 
memória do computador e processado pela ULA 
(Unidade Lógico Aritmética) do processador como 
uma sequência de bits. 
 
Apenas o usuário(programador) sabe o significado 
da sequência de bits armazenada/processada. 
 
100100112 = ??? 
Representação de Dados no Computador

Outros materiais