SlideShare uma empresa Scribd logo
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

PPTX
Sistemas de numeração
PPTX
Apresentação1 sistemas numéricos
PPTX
SISTEMAS digitais SISTEMAS DE NUMERAÇÃO
DOCX
Actividade - Números Binários
ODP
Sistema binario
PDF
Introdução
PPTX
Circuitos Digitais - Revisão
Sistemas de numeração
Apresentação1 sistemas numéricos
SISTEMAS digitais SISTEMAS DE NUMERAÇÃO
Actividade - Números Binários
Sistema binario
Introdução
Circuitos Digitais - Revisão

Mais procurados (20)

PDF
O processamento binário
PPTX
Sistemas digitais - Sistemas de Numeração
PPTX
Sistemas numéricos
PDF
Sistema de numeração
PPTX
Noções
DOC
Operações com binários
PDF
Representação e Manipulação de Informações
PDF
Análise de arredondamento em ponto flutuante
PPT
Ponto Flutuante
PPTX
Circuitos Digitais: Revisão
PPTX
C:\Fakepath\Sistemasnumeracaobinariaedecimal
PPTX
Sistemas numéricos
PPTX
Eletrônica digital
PDF
Apostila eletronica digital
PDF
Códigos BCD, Gray e ASCII
PDF
Representação de dados
PDF
Códigos Convolucionais (sequenciais)
PDF
Sistemas Digitais Aula 29-08-18
O processamento binário
Sistemas digitais - Sistemas de Numeração
Sistemas numéricos
Sistema de numeração
Noções
Operações com binários
Representação e Manipulação de Informações
Análise de arredondamento em ponto flutuante
Ponto Flutuante
Circuitos Digitais: Revisão
C:\Fakepath\Sistemasnumeracaobinariaedecimal
Sistemas numéricos
Eletrônica digital
Apostila eletronica digital
Códigos BCD, Gray e ASCII
Representação de dados
Códigos Convolucionais (sequenciais)
Sistemas Digitais Aula 29-08-18
Anúncio

Semelhante a Programando em python codificacao de dados (20)

PPTX
Aula 04 isc - a informação e sua representação
PDF
Aula sobre bite e byte
PPS
Bits & Bytes
PDF
Tabela de conversao
PPT
PDF
Python 05 - Ponto flutuante
PDF
Tp representação de informação
PDF
Aula 8 - Lógica de Programação - Variáveis, Tipos de dados e Operadores
PPS
Mais binários
PPTX
Informática- Medidas Computacionais.pptx
PPTX
Arquitetura de Sistemas Operacionais 32 x 64 Bits
PPT
PDF
Unidades de Medidas Computacionais
PDF
Resumo Tipos de Dados - LP1
PDF
Linguagem C (Parte 4)
PDF
Roteiro IOC 03_2
PPTX
Interligados Apresentação 1
PPTX
T aula2-revisões bases e ip
PPT
Introducao Computacao Slide 2
Aula 04 isc - a informação e sua representação
Aula sobre bite e byte
Bits & Bytes
Tabela de conversao
Python 05 - Ponto flutuante
Tp representação de informação
Aula 8 - Lógica de Programação - Variáveis, Tipos de dados e Operadores
Mais binários
Informática- Medidas Computacionais.pptx
Arquitetura de Sistemas Operacionais 32 x 64 Bits
Unidades de Medidas Computacionais
Resumo Tipos de Dados - LP1
Linguagem C (Parte 4)
Roteiro IOC 03_2
Interligados Apresentação 1
T aula2-revisões bases e ip
Introducao Computacao Slide 2
Anúncio

Mais de samuelthiago (20)

PPTX
Eclipse i (1)
PPTX
Html básico
PPTX
Interface grafica em_java_parte_v
PPTX
Interface grafica em_java_parte_iv
PPTX
Interface grafica em_java_parte_iii
PPTX
Interface grafica em_java_parte_ii
PPTX
Interface grafica em_java_parte_i
PPTX
Poo interacao entre_objetos_blue_j_ii
PPTX
Introducao a poo_com_blue_j
PPT
Projeto calculadora em_java
PPT
Introducao a poo_com_blue_j
PDF
01 02 introdução aos bancos de dados (slides)
PDF
Java 08
PDF
Java 07
PDF
Java 06
PDF
Java 05
PDF
Java 04
PDF
Java 03
PDF
Java 02
PDF
Java 01
Eclipse i (1)
Html básico
Interface grafica em_java_parte_v
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_i
Poo interacao entre_objetos_blue_j_ii
Introducao a poo_com_blue_j
Projeto calculadora em_java
Introducao a poo_com_blue_j
01 02 introdução aos bancos de dados (slides)
Java 08
Java 07
Java 06
Java 05
Java 04
Java 03
Java 02
Java 01

Último (16)

PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
COBITxITIL-Entenda as diferença em uso governança TI
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Processos na gestão de transportes, TM100 Col18
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Arquitetura de computadores - Memórias Secundárias
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express

Programando em python codificacao de dados

  • 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