SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Representações de Dados


             Claudio
             Esperança

                          1
Informação e Dado
Informação
  Designa um conhecimento ou saber
  Abstrato
Dado
  Codificação de informação
  Permite manipulação por um computador
  Concreto

                                          2
Bit
Abreviação de Binary Digit
Dado que representa a informação mais simples
possível:
  Qual a opção correta quando apenas 2 opções
  são possíveis?
O que as duas “opções” denotam deve ser
estabelecido por alguma convenção:
  Ex: 0 ou 1, Verdadeiro ou Falso, branco ou
  preto, etc

                                                3
Agregando bits
Se o número de opções válidas excede 2, é
possível representá-las usando + bits
  2 bits: 4 opções
   ■   00 / 01 / 10 / 11
  3 bits: 8 opções
   ■   4 opções dos 2 bits originais com o terceiro bit valendo 0
   ■   4 opções dos 2 bits originais com o terceiro bit valendo 1
  N bits: 2N opções
1 Byte = 8 Bits → 28 = 256 opções


                                                                    4
Vantagens do sistema binário
Computadores podem manipular eletronicamente os dois
estados possíveis com facilidade:
  Transístores que conduzem ou não,
  Cargas eletrostáticas positivas ou negativas,
  Polarizações magnéticas sul/norte ou norte/sul.
Operações aritméticas podem ser facilmente
implementadas
  Ex: adição requer a implementação de apenas 4 possibilidades:
   ■   0+0 = 0
   ■   0+1 = 1 + 0 = 1
   ■   1+1 = 0 (e “vai um”)


                                                                  5
Codificando inteiros
Usa-se a notação posicional comum, só que em base 2
  Apenas os algarismos 0 e 1 são admitidos
  Um bit é usado para cada algarismo
Notação posicional:
  Cada casa corresponde a uma potência da base
   ■   Da direita para esquerda: potências 0, 1, 2, … n
   ■   Algarismos são multiplicados pela potência correspondente e depois
       somados
  Ex: 183 em base 10 significa 3×100+8×101+1×102
  Ex: 101 em base 2 significa 1×20+0×21+1×22
  = 5 em base 10


                                                                            6
Exemplos
27    26    25   24   23   22   21   20
128   64    32   16   8    4    2    1

10112 = 1+2+8 = 1110
1010002 = 8+32 = 4010
1110002 = 8+16+32 = 5610
2510 = ?2




                                          7
Conversão de bases
Se um número X na base B é dado por

Então,




   Etc
Onde div significa divisão inteira e mod significa resto da
divisão




                                                              8
Exemplo
2510 = ?2               = 1×20+0×21+0×22+1×23+1×24

   25 mod 2 =      1    = 110012

   25 div 2 = 12
   12 mod 2 =      0
   12 div 2 = 6
   6 mod 2 =       0
   6 div 2 = 3
   3 mod 2 =       1
   3 div 2 = 1
   1 mod 2 =       1



                                                     9
Base Octal
Algumas bases que são potências de dois são
frequentemente usadas para indicar configurações de bits
A base 8 usa os dígitos de 0 a 7, sendo que cada dígito
octal corresponde a 3 dígitos binários:
  08 = 0002
                    48 =   1002
  18 = 0012         58 =   1012
  28 = 0102         68 =   1102
                    78 =   1112
  38 = 0112
Exemplos:
  1638 = 001 110 0112
  5278 = 101 010 1112

                                                           10
Base Hexadecimal
Um dígito da base hexadecimal (base 16 = 24)
corresponde a 4 dígitos binários
Além dos 10 algarismos arábicos (0 a 9) usa-se as letras
A a F para denotar os “algarismos” 10 a 15
  A16=10102       D16=11012
  B16=10112       E16=11102
                  F16=11112
  C16=11002
Exemplos:
  A2F116=1010 0010 1111 00012
  1CEE16=1 1100 1110 11102


                                                           11
Memória
A memória de um computador corresponde a uma certa
quantidade de bytes endereçáveis
  O endereço de um byte é sua localização dentro da memória

            endereço    1 ou mais
                        bytes

                   0     dado
                   1

                   2

                   3                    Memória com
                                        N endereços
                          ...
                 N-2

                  N-1
                                                              12
Memória
Bytes são lidos e gravados na memória em grupos
chamados de palavras de memória
  Uma palavra é a quantidade que pode ser transportada
  de uma vez (por ciclo de máquina) de / para a memória
É comum variáveis simples ocuparem exatamente
uma ou duas palavras de memória
  Ex.: inteiros em arquiteturas de 32 bits ocupam 4 bytes
  (4 x 8 = 32 bits)




                                                          13
Capacidade de memória
É medida em múltiplos de           Quando se trata de memória
bytes                              secundária (disco), os múltiplos
                                   são contados ligeiramente
  1024 Bytes = 1 Kilobyte          diferente:
  1024 Kilobytes = 1 Megabyte         1000 Bytes = 1 Kilobyte
  1024 Megabytes = 1 Gigabyte         1000 Kilobytes = 1 Megabyte
  1024 Gigabytes = 1 Terabyte         1000 Megabytes = 1 Gigabyte
  1024 Terabytes = 1 Petabyte         1000 Gigabytes = 1 Terabyte
  1024 Petabytes = 1 Exabyte          1000 Terabytes = 1 Petabyte
  1024 Exabytes = 1 Zettabyte         1000 Petabytes = 1 Exabyte
  1024 Zettabytes = 1 Yottabyte       1000 Exabytes = 1 Zettabyte
  1024 Yottabytes = 1 Brontobyte      1000 Zettabytes = 1 Yottabyte
  1024 Brontobytes = 1 Geopbyte       1000 Yottabytes = 1 Brontobyte
                                      1000 Brontobytes = 1 Geopbyte
                                                                  14
Inteiros negativos
Para indicar se um número inteiro é positivo
ou negativo, pode-se usar um bit extra (bit
de sinal)
  Se bit = 0: número positivo
  Se bit = 1: número negativo
Um problema disso é que o zero tem duas
representações válidas



                                           15
Complemento a dois
O esquema mais usado para representar inteiros negativos
Numa representação com n bits,
   n – 1 bits representam um valor positivo entre 0 e 2n – 1 – 1
   O n-ésimo bit, se igual a 1, indica que –2n – 1 tem que ser somado ao total

Exemplo com 3 bits:
   2 bits representam um valor positivo entre 0 e 3
   Se o terceiro bit é 1, então –4 tem que ser somado
     ■   0002 = 0
                     ■1002 =   -4
     ■   0012 = 1
                     ■1012 =   -3
     ■   0102 = 2    ■1102 =   -2
     ■   0112 = 3    ■1112 =   -1




                                                                                 16
Complemento a dois
Qual a representação complemento a 2 de -19 (com 6
bits)?
Começamos com o valor mais negativo possível e
somamos as potências positivas sucessivas até encontrar
o valor desejado
  100000 é -32
  110000 é -32+16 = -16 (somamos demais!)
  101000 é -32+8 = -24
  101100 é -32+8+4 = -20
  101110 é -32+8+4+2= -18 (somamos demais!)
  101101 é -32+8+4+1= -19 (OK!)


                                                          17
Intervalo de representação
Se n bits são usados para codificar apenas
inteiros positivos, então é possível representar
valores entre 0 e 2n – 1
  Ex.: com 16 bits é possível representar inteiros no
  intervalo [0, 216 – 1] = [0, 65535]
 Usando complemento a 2, é possível representar
inteiros entre –2n – 1 e 2n – 1 –1
  Ex.: com 16 bits é possível representar inteiros no
  intervalo [–215 , 215–1] = [-32768, 32767]



                                                        18
Ponto flutuante
É a codificação mais empregada para representar números
fracionários
Semelhante à notação científica (base decimal):
                   234.45 = 0.23445×103

Mantissa e expoente são representados em binário
               1101.101 = 0.1101101×2100
  O ponto é movido para a esquerda da 1a casa não nula (4 casas no
  exemplo)
  A potência de 2 correspondente é registrada no expoente (no
  exemplo: 410 = 1002 )



                                                                 19
Padrão IEEE 754
Especificação de ponto flutuante de 32 bits
  Expoente em 8 bits representando potências de 2 no intervalo [-
  126,127]
  Mantissa em 23 bits + 1 bit de sinal
Especificação de ponto flutuante de 64 bits
  Expoente em 11 bits representando potências de 2 no intervalo
  [−1022, 1023]
  Mantissa em 52 bits + 1 bit de sinal
Algumas configurações são usadas para representar
valores especiais tais como +inf, -inf, NaN, -0
  Ajudam a lidar com valores extremos



                                                                    20
Precisão de ponto flutuante
Números de ponto flutuante de 32 bits têm
aproximadamente
  9 dígitos decimais de precisão
  Menor positivo não nulo ~ 10-38
  Maior positivo ~ 1038
Nem todas as frações podem ser representadas
exatamente
  Por exemplo, o número 0.1 decimal é uma dízima
  periódica em binário
   ■   O número realmente armazenado em 32 bits é
       0.100000001490116119384765625

                                                    21
Texto
Caracteres de texto são codificados em bytes usando uma
convenção chamada de tabela de codificação (character
code em inglês)
O precursor de todas as tabelas modernas é o ASCII
(American Standard Code for Information Interchange)
  Cada caractere ocupa 1 byte
  26 letras maiúsculas (códigos 65 a 90) e 26 minúsculas (97 a 122)
  10 algarismos arábicos (48 a 57)
  ~20 sinais de pontuação e caracteres gráficos
  32 caracteres de controle (0 a 31)
   ■   Não têm marca gráfica (não imprimíveis)
   ■   Usados originalmente para controlar o fluxo de informação textual
   ■   Ex: Line Feed (10) / Carriage Return (13) / Tab (9) / Backspace (8)
                                                                             22
Extensões do ASCII
Outras tabelas baseadas no ASCII são usadas para
suportar letras latinas acentuadas e outros
símbolos
  ISO-8859-1 a ISO-8859-15 → Diversos padrões para
  línguas ocidentais
  Windows CP-1252
Línguas com caracteres não latinos (Cirílico,
caracteres de línguas asiáticas) são suportadas
por outras tabelas específicas


                                                     23
Unicode
O desejo de padronizar a representação de caracteres de
todos os tipos levou à criação do padrão Unicode
(www.unicode.org)
O padrão completo contém mais de 100 mil caracteres
É mais comumente implementado usando as tabelas UTF-
8 (8 bits) e UTF-16 (16 bits)
  UTF = Unicode Transformation Format
UTF-8 é a mais empregada
  Compatível com ASCII
   ■   Códigos 0-127 denotam os mesmos caracteres
  Demais caracteres são representados usando até 3 bytes
  adicionais

                                                           24

Mais conteúdo relacionado

Mais procurados

O processamento binário
O processamento binárioO processamento binário
O processamento bináriocabaldreams
 
Sistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de NumeraçãoSistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de NumeraçãoCarlos Pereira
 
Operações com binários
Operações com bináriosOperações com binários
Operações com bináriosjecyjs
 
Representação e Manipulação de Informações
Representação e Manipulação de InformaçõesRepresentação e Manipulação de Informações
Representação e Manipulação de InformaçõesSidney Roberto
 
Análise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuanteAnálise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuanteFelipe Belarmino
 
C:\Fakepath\Sistemasnumeracaobinariaedecimal
C:\Fakepath\SistemasnumeracaobinariaedecimalC:\Fakepath\Sistemasnumeracaobinariaedecimal
C:\Fakepath\SistemasnumeracaobinariaedecimalJosé Mortágua
 
Apostila eletronica digital
Apostila   eletronica digitalApostila   eletronica digital
Apostila eletronica digital36wa
 
Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Mauro Tapajós
 

Mais procurados (20)

O processamento binário
O processamento binárioO processamento binário
O processamento binário
 
Sistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de NumeraçãoSistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de Numeração
 
Sistemas numéricos
Sistemas numéricosSistemas numéricos
Sistemas numéricos
 
Sistema de numeração
Sistema de numeraçãoSistema de numeração
Sistema de numeração
 
Noções
 Noções Noções
Noções
 
Operações com binários
Operações com bináriosOperações com binários
Operações com binários
 
Representação e Manipulação de Informações
Representação e Manipulação de InformaçõesRepresentação e Manipulação de Informações
Representação e Manipulação de Informações
 
Análise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuanteAnálise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuante
 
Ponto Flutuante
Ponto FlutuantePonto Flutuante
Ponto Flutuante
 
Circuitos Digitais: Revisão
Circuitos Digitais: RevisãoCircuitos Digitais: Revisão
Circuitos Digitais: Revisão
 
C:\Fakepath\Sistemasnumeracaobinariaedecimal
C:\Fakepath\SistemasnumeracaobinariaedecimalC:\Fakepath\Sistemasnumeracaobinariaedecimal
C:\Fakepath\Sistemasnumeracaobinariaedecimal
 
Sistemas numéricos
Sistemas numéricosSistemas numéricos
Sistemas numéricos
 
Eletrônica digital
Eletrônica digitalEletrônica digital
Eletrônica digital
 
Apostila eletronica digital
Apostila   eletronica digitalApostila   eletronica digital
Apostila eletronica digital
 
Códigos BCD, Gray e ASCII
Códigos  BCD, Gray e ASCIICódigos  BCD, Gray e ASCII
Códigos BCD, Gray e ASCII
 
Representação de dados
Representação de dadosRepresentação de dados
Representação de dados
 
Sistema conversões
Sistema conversõesSistema conversões
Sistema conversões
 
Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)
 
Sistemas Digitais Aula 29-08-18
Sistemas Digitais Aula 29-08-18Sistemas Digitais Aula 29-08-18
Sistemas Digitais Aula 29-08-18
 
Binarios
BinariosBinarios
Binarios
 

Semelhante a Representações de Dados Digitais

UFCD 6024.pptx
UFCD 6024.pptxUFCD 6024.pptx
UFCD 6024.pptxteresa rua
 
Informática- Medidas Computacionais.pptx
Informática- Medidas Computacionais.pptxInformática- Medidas Computacionais.pptx
Informática- Medidas Computacionais.pptxLeandroBarros977326
 
Unidades de Medidas Computacionais
Unidades de Medidas ComputacionaisUnidades de Medidas Computacionais
Unidades de Medidas ComputacionaisJoao Neves
 
Tp representação de informação
Tp   representação de informaçãoTp   representação de informação
Tp representação de informaçãoLuis Lino Ferreira
 
aula2 de sistemas de numeração para matemática
aula2 de sistemas de numeração para matemáticaaula2 de sistemas de numeração para matemática
aula2 de sistemas de numeração para matemáticaLetciaMontelo3
 
Calculo Numérico -Conceitos_Basicos (2).ppt
Calculo Numérico -Conceitos_Basicos (2).pptCalculo Numérico -Conceitos_Basicos (2).ppt
Calculo Numérico -Conceitos_Basicos (2).pptluisfelipearaujo503
 
Aula 04 isc - a informação e sua representação
Aula 04   isc - a informação e sua representaçãoAula 04   isc - a informação e sua representação
Aula 04 isc - a informação e sua representaçãoFábio Andrade
 
binario conversao hexadecimal octal decimal
binario conversao hexadecimal octal decimalbinario conversao hexadecimal octal decimal
binario conversao hexadecimal octal decimalGabrielBarbosa867714
 
sistemasdenumeracaoutilizadosnacomputacao5.ppt
sistemasdenumeracaoutilizadosnacomputacao5.pptsistemasdenumeracaoutilizadosnacomputacao5.ppt
sistemasdenumeracaoutilizadosnacomputacao5.pptCristian129328
 
n12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdf
n12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdfn12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdf
n12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdfCarlosPereira558606
 
Aula 05- IN1 - IFES - 2 semestre 2010
Aula   05- IN1 - IFES - 2 semestre 2010Aula   05- IN1 - IFES - 2 semestre 2010
Aula 05- IN1 - IFES - 2 semestre 2010Moises Omena
 
Ferramentas web aula02
Ferramentas web aula02Ferramentas web aula02
Ferramentas web aula02Carla Suelen
 
Introducao Computacao Slide 2
Introducao Computacao Slide 2Introducao Computacao Slide 2
Introducao Computacao Slide 2Duílio Andrade
 
Circuitos de portas logicas - Conversão de sistemas binarios e decimais
Circuitos de portas logicas - Conversão de sistemas binarios e decimaisCircuitos de portas logicas - Conversão de sistemas binarios e decimais
Circuitos de portas logicas - Conversão de sistemas binarios e decimaisRafaelRocha658505
 
Aula 10 - Códigos BCD.pptx
Aula 10 - Códigos BCD.pptxAula 10 - Códigos BCD.pptx
Aula 10 - Códigos BCD.pptxriodurval
 

Semelhante a Representações de Dados Digitais (20)

UFCD 6024.pptx
UFCD 6024.pptxUFCD 6024.pptx
UFCD 6024.pptx
 
Informática- Medidas Computacionais.pptx
Informática- Medidas Computacionais.pptxInformática- Medidas Computacionais.pptx
Informática- Medidas Computacionais.pptx
 
Bits & Bytes
Bits & BytesBits & Bytes
Bits & Bytes
 
Unidades de Medidas Computacionais
Unidades de Medidas ComputacionaisUnidades de Medidas Computacionais
Unidades de Medidas Computacionais
 
Tabela de conversao
Tabela de conversaoTabela de conversao
Tabela de conversao
 
Tp representação de informação
Tp   representação de informaçãoTp   representação de informação
Tp representação de informação
 
aula2 de sistemas de numeração para matemática
aula2 de sistemas de numeração para matemáticaaula2 de sistemas de numeração para matemática
aula2 de sistemas de numeração para matemática
 
Calculo Numérico -Conceitos_Basicos (2).ppt
Calculo Numérico -Conceitos_Basicos (2).pptCalculo Numérico -Conceitos_Basicos (2).ppt
Calculo Numérico -Conceitos_Basicos (2).ppt
 
Computadores somam numeros
Computadores somam numerosComputadores somam numeros
Computadores somam numeros
 
Aula 04 isc - a informação e sua representação
Aula 04   isc - a informação e sua representaçãoAula 04   isc - a informação e sua representação
Aula 04 isc - a informação e sua representação
 
binario conversao hexadecimal octal decimal
binario conversao hexadecimal octal decimalbinario conversao hexadecimal octal decimal
binario conversao hexadecimal octal decimal
 
Sistemasde numeracao
Sistemasde numeracaoSistemasde numeracao
Sistemasde numeracao
 
sistemasdenumeracaoutilizadosnacomputacao5.ppt
sistemasdenumeracaoutilizadosnacomputacao5.pptsistemasdenumeracaoutilizadosnacomputacao5.ppt
sistemasdenumeracaoutilizadosnacomputacao5.ppt
 
n12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdf
n12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdfn12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdf
n12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdf
 
Aula 05- IN1 - IFES - 2 semestre 2010
Aula   05- IN1 - IFES - 2 semestre 2010Aula   05- IN1 - IFES - 2 semestre 2010
Aula 05- IN1 - IFES - 2 semestre 2010
 
Ferramentas web aula02
Ferramentas web aula02Ferramentas web aula02
Ferramentas web aula02
 
Mais binários
Mais bináriosMais binários
Mais binários
 
Introducao Computacao Slide 2
Introducao Computacao Slide 2Introducao Computacao Slide 2
Introducao Computacao Slide 2
 
Circuitos de portas logicas - Conversão de sistemas binarios e decimais
Circuitos de portas logicas - Conversão de sistemas binarios e decimaisCircuitos de portas logicas - Conversão de sistemas binarios e decimais
Circuitos de portas logicas - Conversão de sistemas binarios e decimais
 
Aula 10 - Códigos BCD.pptx
Aula 10 - Códigos BCD.pptxAula 10 - Códigos BCD.pptx
Aula 10 - Códigos BCD.pptx
 

Mais de samuelthiago

Interface grafica em_java_parte_v
Interface grafica em_java_parte_vInterface grafica em_java_parte_v
Interface grafica em_java_parte_vsamuelthiago
 
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_ivInterface grafica em_java_parte_iv
Interface grafica em_java_parte_ivsamuelthiago
 
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_iiiInterface grafica em_java_parte_iii
Interface grafica em_java_parte_iiisamuelthiago
 
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_iiInterface grafica em_java_parte_ii
Interface grafica em_java_parte_iisamuelthiago
 
Interface grafica em_java_parte_i
Interface grafica em_java_parte_iInterface grafica em_java_parte_i
Interface grafica em_java_parte_isamuelthiago
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iisamuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_jsamuelthiago
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_javasamuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_jsamuelthiago
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)samuelthiago
 

Mais de samuelthiago (20)

Eclipse i (1)
Eclipse i (1)Eclipse i (1)
Eclipse i (1)
 
Html básico
Html básicoHtml básico
Html básico
 
Interface grafica em_java_parte_v
Interface grafica em_java_parte_vInterface grafica em_java_parte_v
Interface grafica em_java_parte_v
 
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_ivInterface grafica em_java_parte_iv
Interface grafica em_java_parte_iv
 
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_iiiInterface grafica em_java_parte_iii
Interface grafica em_java_parte_iii
 
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_iiInterface grafica em_java_parte_ii
Interface grafica em_java_parte_ii
 
Interface grafica em_java_parte_i
Interface grafica em_java_parte_iInterface grafica em_java_parte_i
Interface grafica em_java_parte_i
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_ii
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)
 
Java 08
Java 08Java 08
Java 08
 
Java 07
Java 07Java 07
Java 07
 
Java 06
Java 06Java 06
Java 06
 
Java 05
Java 05Java 05
Java 05
 
Java 04
Java 04Java 04
Java 04
 
Java 03
Java 03Java 03
Java 03
 
Java 02
Java 02Java 02
Java 02
 
Java 01
Java 01Java 01
Java 01
 

Representações de Dados Digitais

  • 1. Representações de Dados Claudio Esperança 1
  • 2. Informação e Dado Informação Designa um conhecimento ou saber Abstrato Dado Codificação de informação Permite manipulação por um computador Concreto 2
  • 3. Bit Abreviação de Binary Digit Dado que representa a informação mais simples possível: Qual a opção correta quando apenas 2 opções são possíveis? O que as duas “opções” denotam deve ser estabelecido por alguma convenção: Ex: 0 ou 1, Verdadeiro ou Falso, branco ou preto, etc 3
  • 4. Agregando bits Se o número de opções válidas excede 2, é possível representá-las usando + bits 2 bits: 4 opções ■ 00 / 01 / 10 / 11 3 bits: 8 opções ■ 4 opções dos 2 bits originais com o terceiro bit valendo 0 ■ 4 opções dos 2 bits originais com o terceiro bit valendo 1 N bits: 2N opções 1 Byte = 8 Bits → 28 = 256 opções 4
  • 5. Vantagens do sistema binário Computadores podem manipular eletronicamente os dois estados possíveis com facilidade: Transístores que conduzem ou não, Cargas eletrostáticas positivas ou negativas, Polarizações magnéticas sul/norte ou norte/sul. Operações aritméticas podem ser facilmente implementadas Ex: adição requer a implementação de apenas 4 possibilidades: ■ 0+0 = 0 ■ 0+1 = 1 + 0 = 1 ■ 1+1 = 0 (e “vai um”) 5
  • 6. Codificando inteiros Usa-se a notação posicional comum, só que em base 2 Apenas os algarismos 0 e 1 são admitidos Um bit é usado para cada algarismo Notação posicional: Cada casa corresponde a uma potência da base ■ Da direita para esquerda: potências 0, 1, 2, … n ■ Algarismos são multiplicados pela potência correspondente e depois somados Ex: 183 em base 10 significa 3×100+8×101+1×102 Ex: 101 em base 2 significa 1×20+0×21+1×22 = 5 em base 10 6
  • 7. Exemplos 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 10112 = 1+2+8 = 1110 1010002 = 8+32 = 4010 1110002 = 8+16+32 = 5610 2510 = ?2 7
  • 8. Conversão de bases Se um número X na base B é dado por Então, Etc Onde div significa divisão inteira e mod significa resto da divisão 8
  • 9. Exemplo 2510 = ?2 = 1×20+0×21+0×22+1×23+1×24 25 mod 2 = 1 = 110012 25 div 2 = 12 12 mod 2 = 0 12 div 2 = 6 6 mod 2 = 0 6 div 2 = 3 3 mod 2 = 1 3 div 2 = 1 1 mod 2 = 1 9
  • 10. Base Octal Algumas bases que são potências de dois são frequentemente usadas para indicar configurações de bits A base 8 usa os dígitos de 0 a 7, sendo que cada dígito octal corresponde a 3 dígitos binários: 08 = 0002 48 = 1002 18 = 0012 58 = 1012 28 = 0102 68 = 1102 78 = 1112 38 = 0112 Exemplos: 1638 = 001 110 0112 5278 = 101 010 1112 10
  • 11. Base Hexadecimal Um dígito da base hexadecimal (base 16 = 24) corresponde a 4 dígitos binários Além dos 10 algarismos arábicos (0 a 9) usa-se as letras A a F para denotar os “algarismos” 10 a 15 A16=10102 D16=11012 B16=10112 E16=11102 F16=11112 C16=11002 Exemplos: A2F116=1010 0010 1111 00012 1CEE16=1 1100 1110 11102 11
  • 12. Memória A memória de um computador corresponde a uma certa quantidade de bytes endereçáveis O endereço de um byte é sua localização dentro da memória endereço 1 ou mais bytes 0 dado 1 2 3 Memória com N endereços ... N-2 N-1 12
  • 13. Memória Bytes são lidos e gravados na memória em grupos chamados de palavras de memória Uma palavra é a quantidade que pode ser transportada de uma vez (por ciclo de máquina) de / para a memória É comum variáveis simples ocuparem exatamente uma ou duas palavras de memória Ex.: inteiros em arquiteturas de 32 bits ocupam 4 bytes (4 x 8 = 32 bits) 13
  • 14. Capacidade de memória É medida em múltiplos de Quando se trata de memória bytes secundária (disco), os múltiplos são contados ligeiramente 1024 Bytes = 1 Kilobyte diferente: 1024 Kilobytes = 1 Megabyte 1000 Bytes = 1 Kilobyte 1024 Megabytes = 1 Gigabyte 1000 Kilobytes = 1 Megabyte 1024 Gigabytes = 1 Terabyte 1000 Megabytes = 1 Gigabyte 1024 Terabytes = 1 Petabyte 1000 Gigabytes = 1 Terabyte 1024 Petabytes = 1 Exabyte 1000 Terabytes = 1 Petabyte 1024 Exabytes = 1 Zettabyte 1000 Petabytes = 1 Exabyte 1024 Zettabytes = 1 Yottabyte 1000 Exabytes = 1 Zettabyte 1024 Yottabytes = 1 Brontobyte 1000 Zettabytes = 1 Yottabyte 1024 Brontobytes = 1 Geopbyte 1000 Yottabytes = 1 Brontobyte 1000 Brontobytes = 1 Geopbyte 14
  • 15. Inteiros negativos Para indicar se um número inteiro é positivo ou negativo, pode-se usar um bit extra (bit de sinal) Se bit = 0: número positivo Se bit = 1: número negativo Um problema disso é que o zero tem duas representações válidas 15
  • 16. Complemento a dois O esquema mais usado para representar inteiros negativos Numa representação com n bits, n – 1 bits representam um valor positivo entre 0 e 2n – 1 – 1 O n-ésimo bit, se igual a 1, indica que –2n – 1 tem que ser somado ao total Exemplo com 3 bits: 2 bits representam um valor positivo entre 0 e 3 Se o terceiro bit é 1, então –4 tem que ser somado ■ 0002 = 0 ■1002 = -4 ■ 0012 = 1 ■1012 = -3 ■ 0102 = 2 ■1102 = -2 ■ 0112 = 3 ■1112 = -1 16
  • 17. Complemento a dois Qual a representação complemento a 2 de -19 (com 6 bits)? Começamos com o valor mais negativo possível e somamos as potências positivas sucessivas até encontrar o valor desejado 100000 é -32 110000 é -32+16 = -16 (somamos demais!) 101000 é -32+8 = -24 101100 é -32+8+4 = -20 101110 é -32+8+4+2= -18 (somamos demais!) 101101 é -32+8+4+1= -19 (OK!) 17
  • 18. Intervalo de representação Se n bits são usados para codificar apenas inteiros positivos, então é possível representar valores entre 0 e 2n – 1 Ex.: com 16 bits é possível representar inteiros no intervalo [0, 216 – 1] = [0, 65535] Usando complemento a 2, é possível representar inteiros entre –2n – 1 e 2n – 1 –1 Ex.: com 16 bits é possível representar inteiros no intervalo [–215 , 215–1] = [-32768, 32767] 18
  • 19. Ponto flutuante É a codificação mais empregada para representar números fracionários Semelhante à notação científica (base decimal): 234.45 = 0.23445×103 Mantissa e expoente são representados em binário 1101.101 = 0.1101101×2100 O ponto é movido para a esquerda da 1a casa não nula (4 casas no exemplo) A potência de 2 correspondente é registrada no expoente (no exemplo: 410 = 1002 ) 19
  • 20. Padrão IEEE 754 Especificação de ponto flutuante de 32 bits Expoente em 8 bits representando potências de 2 no intervalo [- 126,127] Mantissa em 23 bits + 1 bit de sinal Especificação de ponto flutuante de 64 bits Expoente em 11 bits representando potências de 2 no intervalo [−1022, 1023] Mantissa em 52 bits + 1 bit de sinal Algumas configurações são usadas para representar valores especiais tais como +inf, -inf, NaN, -0 Ajudam a lidar com valores extremos 20
  • 21. Precisão de ponto flutuante Números de ponto flutuante de 32 bits têm aproximadamente 9 dígitos decimais de precisão Menor positivo não nulo ~ 10-38 Maior positivo ~ 1038 Nem todas as frações podem ser representadas exatamente Por exemplo, o número 0.1 decimal é uma dízima periódica em binário ■ O número realmente armazenado em 32 bits é 0.100000001490116119384765625 21
  • 22. Texto Caracteres de texto são codificados em bytes usando uma convenção chamada de tabela de codificação (character code em inglês) O precursor de todas as tabelas modernas é o ASCII (American Standard Code for Information Interchange) Cada caractere ocupa 1 byte 26 letras maiúsculas (códigos 65 a 90) e 26 minúsculas (97 a 122) 10 algarismos arábicos (48 a 57) ~20 sinais de pontuação e caracteres gráficos 32 caracteres de controle (0 a 31) ■ Não têm marca gráfica (não imprimíveis) ■ Usados originalmente para controlar o fluxo de informação textual ■ Ex: Line Feed (10) / Carriage Return (13) / Tab (9) / Backspace (8) 22
  • 23. Extensões do ASCII Outras tabelas baseadas no ASCII são usadas para suportar letras latinas acentuadas e outros símbolos ISO-8859-1 a ISO-8859-15 → Diversos padrões para línguas ocidentais Windows CP-1252 Línguas com caracteres não latinos (Cirílico, caracteres de línguas asiáticas) são suportadas por outras tabelas específicas 23
  • 24. Unicode O desejo de padronizar a representação de caracteres de todos os tipos levou à criação do padrão Unicode (www.unicode.org) O padrão completo contém mais de 100 mil caracteres É mais comumente implementado usando as tabelas UTF- 8 (8 bits) e UTF-16 (16 bits) UTF = Unicode Transformation Format UTF-8 é a mais empregada Compatível com ASCII ■ Códigos 0-127 denotam os mesmos caracteres Demais caracteres são representados usando até 3 bytes adicionais 24