Pular para o conteúdo

Representação de dados

Ciência da Computação IGCSE · Tópico 1

Ver Slides Treinar
Videoaula para este tópico Abrir a página do vídeo
21:16

Por que os Computadores Usam Binário

Dentro de um processador existem bilhões de interruptores minúsculos. Cada um pode estar apenas ligado ou desligado. Isso é tudo o que um computador tem fisicamente — não há três, nem sete, nem…

Narração em inglês · legendas em inglês e 中文 que você pode alternar

1.1

Por que os computadores usam binário

Computadores digitais representam dados usando dois estados lógicos, escritos como 1 e 0. Um sistema que usa apenas dois dígitos é chamado binário (base 2).

Um campo de dígitos binários azuis, 0s e 1s
Computadores representam todos os dados — números, texto, som e imagens — como sequências binárias de 0s e 1s

Todo tipo de dado — números, texto, som e imagens — deve ser convertido para binário antes que um computador possa usá-lo. O computador processa esse binário usando portas lógicas e armazena-o em registros (pequenos e rápidos armazenamento dentro do processador).

O chip de silício de um microprocessador sob ampliação
Um microprocessador contém milhões de transistores minúsculos, cada um sendo um interruptor ligado (1) ou desligado (0) — a base física do binário
Vocabulário Treinar
English Português
digit/ˈdɪdʒɪt/ algarismo
binary/ˈbaɪnəri/ binário
data/ˈdeɪtə/ dados
logic gate/ˈlɒdʒɪk ɡeɪt/ porta lógica
processor/ˈprəʊsesə/ processador
register/ˈredʒɪstə/ registrador
number system/ˈnʌmbə ˈsɪstəm/ sistema numérico
denary/ˈdiːnəri/ decimal
base/beɪs/ base
1.1

Sistemas numéricos

Programa
Os candidatos devem ser capazes de: Notas e orientações
1 Entenda como e por que os computadores usam binário para representar todas as formas de dados • Qualquer forma de dados precisa ser convertida para binário para ser processada por um computador • Dados são processados usando portas lógicas e armazenados em registradores
2 (a) Entenda os sistemas numéricos decimal, binário e hexadecimal (b) Converta entre (i) decimal positivo e binário positivo (ii) decimal positivo e hexadecimal positivo (iii) hexadecimal positivo e binário positivo • Decimal é um sistema base 10 • Binário é um sistema base 2 • Hexadecimal é um sistema base 16 • Valores usados serão apenas inteiros • Conversões em ambas as direções, ex.: decimal para binário ou binário para decimal • Comprimento máximo do número binário de 16 bits
3 Entenda como e por que o hexadecimal é usado como um método benéfico de representação de dados • As áreas dentro da ciência da computação onde o hexadecimal é usado devem ser identificadas • O hexadecimal é mais fácil para humanos entenderem do que o binário, pois é uma representação mais curta do binário
4 (a) Some dois inteiros binários positivos de 8 bits (b) Entenda o conceito de transbordamento e por que ocorre na adição binária • Um erro de transbordamento ocorrerá se o valor for maior que 255 em um registrador de 8 bits • Um computador ou dispositivo tem um limite predefinido que pode representar ou armazenar, por exemplo 16 bits • Um erro de transbordamento ocorre quando um valor fora desse limite deve ser retornado
5 Realize um deslocamento binário lógico em um inteiro binário positivo de 8 bits e entenda o efeito disso no inteiro binário positivo • Realize deslocamentos lógicos para a esquerda • Realize deslocamentos lógicos para a direita • Realize múltiplos deslocamentos • Bits deslocados do final do registrador são perdidos e zeros são deslocados para o extremo oposto do registrador • O inteiro binário positivo é multiplicado ou dividido de acordo com o deslocamento realizado • Os bit(s) mais significativo(s) ou menos significativo(s) são perdidos
6 Use o sistema numérico complemento de dois para representar inteiros binários de 8 bits positivos e negativos • Converta um inteiro binário ou decimal positivo para um inteiro de complemento de dois de 8 bits e vice-versa • Converta um inteiro binário ou decimal negativo para um inteiro de complemento de dois de 8 bits e vice-versa

Fonte: Programa Cambridge International

Contagem em binário: 0 a 15

Um sistema numérico é uma forma de escrever números usando um conjunto fixo de dígitos. Você precisa de três deles.

Sistema Base Dígitos usados
Decimal 10 0–9
Binário 2 0 e 1
Hexadecimal 16 0–9 depois A–F
  • denário é o sistema normal de contagem (também chamado decimal).
  • binário usa apenas 0 e 1.
  • hexadecimal (hex) usa dezesseis dígitos: 0–9, depois A, B, C, D, E, F representam 10, 11, 12, 13, 14, 15.

A base indica quantos dígitos diferentes um sistema utiliza.

Valor posicional

Cada coluna em um número tem um valor posicional. No binário, os valores posicionais dobram da direita para a esquerda. Para um número de 8 bits, eles são:

128  64  32  16  8  4  2  1
Um quadro de valor posicional de 8 bits com valores de 128 até 1, e os bits de 150 posicionados sob as colunas que somam 150
Um quadro de valor posicional de 8 bits: os 1 ficam sob os valores que somam 150

Um bit é um único 0 ou 1. Oito bits formam um byte. Quatro bits (metade de um byte) é um nibble.

Conversão entre sistemas numéricos

Decimal → Binário. Escreva os valores posicionais. Coloque um 1 sob cada valor necessário para somar seu número; coloque 0 nos demais.

Exemplo: mude decimal 150 para binário. $150 = 128 + 16 + 4 + 2$.

128 64 32 16 8 4 2 1
  1  0  0  1 0 1 1 0

Então $150$ = 10010110.

Binário → Decimal. Some os valores posicionais onde há um 1. 10010110 $= 128 + 16 + 4 + 2 = 150$.

Hexadecimal → Binário. Converta cada dígito hex para seu próprio grupo de 4 bits (um nibble).

Exemplo: hex F08. $F = 1111$, $0 = 0000$, $8 = 1000$, então F08 = 1111 0000 1000.

Três dígitos hex F, 0 e 8, cada um com uma seta apontando para seu próprio grupo de quatro bits
Cada dígito hex mapeia para seu próprio nibble de 4 bits — F08 = 1111 0000 1000

Binário → Hexadecimal. Agrupe os bits em nibbles de 4, começando da direita. Converta cada nibble para um dígito hex.

Decimal → Hexadecimal. A maneira fácil é mudar para binário primeiro, depois binário para hex.

Esta tabela ajuda com as letras hex:

Decimal Binário Hex
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

Questões da Cambridge usam números binários de até 16 bits de comprimento.

Exemplo resolvido. Converta decimal 100 para binário de 8 bits, depois para hexadecimal.

$100 = 64 + 32 + 4$, então o binário é 01100100. Dividindo em nibbles, 0110 0100 $= 6$ e $4$, então o hexadecimal é 64.

Exemplo resolvido (hexadecimal → decimal). Converta o número hexadecimal 2C para decimal. Os valores posicionais em hexadecimal são $16$ e $1$. 2 vale $2 \times 16 = 32$ e C vale $12$, então 2C $= 32 + 12 = 44$. Confira por meio do sistema binário: 0010 1100 $= 32 + 8 + 4 = 44$.

Por que hexadecimal é usado

Hex é mais curto que binário e mais fácil para pessoas lerem e escreverem. Um dígito hex substitui 4 dígitos binários, assim você comete menos erros. O valor não muda — hex é apenas uma forma mais curta de mostrar o mesmo binário.

Cientistas da computação usam hex para:

  • Endereços MAC e endereços IPv6
  • Códigos de cores em HTML (por exemplo, #FF0000 é vermelho)
  • endereços de memória e códigos de erro
  • exibição do conteúdo da memória (um “despejo de memória”)
Explorar

Binário, decimal e hexadecimal

Digite um número e veja-o em binário, decimal e hexadecimal — e como as posições posicionais o constituem.

Vocabulário Treinar
English Português
hexadecimal/ˌheksəˈdesɪml/ hexadecimal
place value/pleɪs ˈvæljuː/ valor posicional
bit/bɪt/ bit
byte/baɪt/ byte
nibble/ˈnɪbl/ nibble
memory address/ˈmeməri əˈdres/ endereço de memória
1.1

Adição binária

Você pode somar dois números binários de 8 bits, coluna por coluna da direita, assim como o decimal. As regras para uma coluna são:

A B Bit resultado Carregamento
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

Quando um carregamento também entra, $1 + 1 + 1 = 1$ com um carregamento de 1.

Exemplo: some 01110110 (118) e 00110000 (48).

  0 1 1 1 0 1 1 0    (118)
+ 0 0 1 1 0 0 0 0    (48)
-------------------
  1 0 1 0 0 1 1 0    (166)
Adição binária de 8 bits de 118 e 48 com os bits de carregamento mostrados em vermelho acima das colunas esquerdas, resultando em 166
Somando coluna por coluna; os carregamentos se propagam para a esquerda. 118 + 48 = 166

Transbordamento

Quando interpretado como um inteiro sem sinal, um registro de 8 bits armazena valores de 0 a 255. Se uma adição resultar em um valor acima de 255, a resposta precisará de um 9 bit. O registro não pode armazenar esse bit extra, então ele é perdido. Isso é chamado transbordamento (erro de transbordamento). Ocorre quando um valor ultrapassa o limite que o registro pode armazenar.

Exemplo: 11001000 (200) $+$ 01001000 (72) $= 272$. Em binário isso é 1 00010000, que precisa de 9 bits. O 1 inicial não caberá em 8 bits, então a resposta armazenada estará errada.

A soma de 200 e 72 resulta em 272, que em binário precisa de nove bits; o registrador de oito bits mantém apenas os oito inferiores e perde o nono bit, então a resposta armazenada é 16 em vez de 272
Adicionar 200 e 72 precisa de 9 bits, mas um registrador de 8 bits descarta o nono, então a resposta está errada
Vocabulário Treinar
English Português
overflow/ˌəʊvəˈfləʊ/ transbordamento
logical binary shift/ˈlɒdʒɪkl ˈbaɪnəri ʃɪft/ deslocamento binário lógico
least significant bit/liːst sɪɡˈnɪfɪkənt bɪt/ bit menos significativo
two's complement/tuːz ˈkɒmplɪmənt/ complemento de dois
most significant bit/məʊst sɪɡˈnɪfɪkənt bɪt/ bit mais significativo
character set/ˈkærɪktə set/ conjunto de caracteres
1.1

Deslocamento lógico binário

Um deslocamento lógico binário move todos os bits para a esquerda ou direita por um certo número de posições.

  • Bits que saem da extremidade do registrador são perdidos.
  • Zeros são adicionados na extremidade vazia.

Para um inteiro sem sinal, um deslocamento para a esquerda multiplica por 2 para cada posição movida se nenhum bit não nulo for perdido. Um deslocamento lógico para a direita fornece o resultado inteiro da divisão por 2 para cada posição; os bits mais à direita (os bits menos significativos) são perdidos.

Exemplo: deslocar à esquerda 00110101 (53) em 2 posições.

start:         0 0 1 1 0 1 0 1
left shift 2:  1 1 0 1 0 1 0 0
Um deslocamento lógico à esquerda de duas posições: as setas movem cada bit duas colunas para a esquerda, os dois bits mais à esquerda são perdidos e dois zeros entram pela direita
Deslocamento à esquerda de 2: cada bit se move 2 posições para a esquerda, os bits superiores são perdidos e zeros preenchem a direita

O resultado é 11010100 (212), que é $53 \times 4$. Os dois bits mais à esquerda foram perdidos e dois zeros entraram pela direita. Se um 1 for empurrado para fora, essa informação está perdida para sempre.

Exemplo resolvido (deslocamento à direita). Desloque 10110100 (180) 3 posições para a direita. Dê o resultado em binário e decimal e diga qual é o efeito do deslocamento.

start:          1 0 1 1 0 1 0 0
right shift 3:  0 0 0 1 0 1 1 0

Os três bits mais à direita (100) são perdidos e três zeros entram à esquerda: 00010110 $= 16 + 4 + 2 = 22$. Deslocar 3 posições para a direita divide por $2^3 = 8$: $180 \div 8 = 22.5$, e o deslocamento mantém apenas a parte inteira, $22$. O valor $0.5$ era representado pelo bit 1 perdido.

Exemplo resolvido (um deslocamento à esquerda que dá errado). Desloque 01100100 (100) 2 posições para a esquerda. O resultado é 10010000 $= 144$, não $400$: um 1 foi descartado pela extremidade esquerda, e $400$ é grande demais para 8 bits de qualquer forma. Um deslocamento à esquerda multiplica corretamente apenas enquanto nenhum bit 1 é perdido.

1.1

Complemento de dois

Até agora, os números foram positivos. Complemento de dois permite que um registrador de 8 bits armazene também números negativos.

No complemento de dois, o bit mais à esquerda (bit mais significativo, ou MSB) tem um valor posicional negativo:

-128  64  32  16  8  4  2  1
  • Se o MSB for 0, o número é zero ou positivo.
  • Se o MSB for 1, o número é negativo.

Para tornar um número positivo negativo: escreva o binário positivo, inverter cada bit (0↔1), depois some 1.

Exemplo: tornar $-40$ negativo.

  • $+40$ = 00101000
  • inverter os bits = 11010111
  • somar 1 = 11011000

Então $-40$ = 11011000. Verifique somando os valores posicionais: $-128 + 64 + 16 + 8 = -40$.

Um gráfico de complemento de dois de 8 bits onde o bit mais significativo vale menos 128, com 11011000 destacado para dar menos 40
O bit mais significativo vale −128, então 11011000 = −128 + 64 + 16 + 8 = −40

Para ler um número no complemento de dois negativo, basta somar os valores posicionais (o MSB conta como $-128$). A faixa de um número de complemento de dois de 8 bits é de $-128$ a $+127$.

Exemplo resolvido. Converta o número em complemento de dois 10011010 para decimal. O bit mais significativo é 1, então o número é negativo: $-128 + 16 + 8 + 2 = -102$. Confira pelo outro método: inverta os bits (01100101) e some 1 (01100110 $= 102$), então o número é $-102$.

1.2

Representação de texto

Programa
Os candidatos devem ser capazes de: Notas e orientações
1 Entenda como e por que um computador representa texto e o uso de conjuntos de caracteres, incluindo código americano padrão para intercâmbio de informações (ASCII) e Unicode • O texto é convertido em binário para ser processado por um computador • O Unicode permite uma gama maior de caracteres e símbolos do que o ASCII, incluindo diferentes idiomas e emojis • O Unicode requer mais bits por caractere do que o ASCII
2 Entenda como e por que um computador representa som, incluindo os efeitos da taxa de amostragem e resolução de amostragem • Uma onda sonora é amostrada para que o som seja convertido em binário, que é processado por um computador • A taxa de amostragem é o número de amostras coletadas em um segundo • A resolução de amostragem é o número de bits por amostra • A precisão da gravação e o tamanho do arquivo aumentam à medida que a taxa de amostragem e a resolução aumentam
3 Entenda como e por que um computador representa uma imagem, incluindo os efeitos da resolução e profundidade de cor • Uma imagem é uma série de pixels que são convertidos em binário, que é processado por um computador • A resolução é o número de pixels na imagem • A profundidade de cor é o número de bits usados para representar cada cor • O tamanho do arquivo e a qualidade da imagem aumentam à medida que a resolução e a profundidade de cor aumentam

Fonte: Programa Cambridge International

Os computadores armazenam texto atribuindo um número a cada caractere e, em seguida, armazenando esse número em binário. O conjunto de caracteres que um computador pode usar, junto com seus números, é um conjunto de caracteres.

ASCII usa códigos de caractere de 7 bits, fornecendo $N = 2^b = 2^7 = 128$ códigos diferentes. Inclui letras do inglês, dígitos e símbolos comuns; nem todos os 128 códigos são letras. Unicode representa uma gama muito maior de caracteres, incluindo diferentes idiomas e emojis.

Tente — codifique uma mensagem curta. Este trecho do ASCII mostra A = 65, B = 66, C = 67 e espaço = 32. Escreva os quatro grupos de 7 bits para CAB , incluindo seu espaço final. Depois, decodifique os grupos 1000010 1000001 1000011.

Resolução exemplificada. Consulte cada caractere, depois converta seu código para binário:

Caractere Código Sete bits
C 67 1000011
A 65 1000001
B 66 1000010
espaço 32 0100000

Portanto, CAB é 1000011 1000001 1000010 0100000. A segunda mensagem decodifica para BAC. Um espaço também possui um código; não se trata de ausência de dados armazenados. O remetente e o destinatário devem usar o mesmo mapeamento de códigos de caracteres para interpretar a mensagem corretamente.

O ASCII possui 128 códigos de sete bits; a comparação curricular usa códigos Unicode mais amplos para representar uma gama maior de idiomas e símbolos. A linha mais larga é ilustrativa, não uma largura universal do Unicode.
O ASCII tem 128 códigos. O Unicode suporta uma gama muito maior; a linha mais larga ilustra o modelo curricular.

Por que uma faixa maior importa. ASCII não pode representar diretamente um nome chinês. Unicode inclui caracteres chineses, além de caracteres ingleses e muitos outros idiomas. Para a comparação do programa de estudos, explique que uma faixa maior exige códigos binários distintos maiores, requerendo mais bits por caractere do que o modelo ASCII de 7-bits.

Tente — compare os modelos de armazenamento declarados. Armazene os quatro caracteres CAB usando (A) 7 bits por caractere e (B) 16 bits por caractere. Suponha que os bits estejam empacotados sem preenchimento ou informações extras de arquivo. Encontre o tamanho dos dados de texto em cada modelo. O valor de 16-bits é uma suposição para este exemplo, não uma regra de que todos os caracteres Unicode ocupam 16 bits.

Resposta trabalhada. Com o mesmo número de caracteres, multiplique pelos bits declarados por caractere:

$$S = n b = 4 \times 7\ \text{bits} = 28\ \text{bits}$$
$$S = n b = 4 \times 16\ \text{bits} = 64\ \text{bits}$$

O Modelo B usa mais armazenamento para este exemplo porque sua largura de código declarada é maior. Use a largura fornecida em uma questão de exame. Em arquivos reais, o codificador também importa: UTF-8 armazena caracteres ASCII nos mesmos bytes de um arquivo ASCII, então o texto Unicode nem sempre ocupa mais bytes. Você não precisa das regras detalhadas de UTF-8 para esta comparação do programa de estudos.

Explorar

Representando som

y = a sin(bt + c)

Som é uma onda; amostragem registra sua altura várias vezes por segundo.

Vocabulário Treinar
English Português
emoji/ɪˈməʊdʒi/ emoji
Assistir aula
1.2

Representação de som

Uma onda sonora é suave e está sempre mudando. Para armazená-la, o computador mede a altura da onda em momentos regulares. Isso é chamado de amostragem, e cada medição é uma amostra.

Uma onda sonora suave com linhas verticais em intervalos de tempo regulares medindo sua altura, marcando o intervalo de amostragem e a amplitude
A amostragem registra a altura da onda (amplitude) em momentos regulares
  • taxa de amostragem é o número de amostras coletadas por segundo (medido em Hz).
  • resolução de amostra é o número de bits usados para cada amostra. A altura da onda em um ponto de amostra é sua amplitude.

Uma taxa de amostragem maior e uma resolução de amostragem maior fornecem uma gravação mais precisa, mas resultam em um arquivo maior.

Explorar

Representando som

y = a sin(bt + c)

Som é uma onda; amostragem registra sua altura várias vezes por segundo.

Vocabulário Treinar
English Português
sampling/ˈsæmplɪŋ/ amostragem
sample rate/ˈsæmpl reɪt/ taxa de amostragem
sample resolution/ˈsæmpl ˌrezəˈluːʃn/ resolução da amostra
amplitude/ˈæmplɪtjuːd/ amplitude
1.2

Representação de imagens

Uma imagem de computador é composta por uma grade de pequenos pontos chamados pixels.

Uma grade 8 por 8 de pixels formando uma imagem colorida simples, com um quadrado rotulado como um único pixel
Um bitmap é uma grade de pixels; a resolução é quantos pixels ela tem
  • resolução é o número de pixels na imagem (por exemplo, $1920 \times 1080$).
  • profundidade de cor é o número de bits usados para armazenar a cor de cada pixel.

Uma resolução maior e uma profundidade de cor maior proporcionam uma imagem de melhor qualidade, mas resultam em um arquivo maior.

A profundidade de cor determina quantas cores diferentes cada pixel pode ter: com $n$ bits há $2^n$ cores. Uma profundidade de cor de 1 bit produz 2 cores (preto e branco), 8 bits produzem $2^8 = 256$ cores e 24 bits produzem mais de 16 milhões.

Exemplo resolvido. Uma imagem usa 64 cores diferentes. Qual é a menor profundidade de cor que ela pode ter? Encontre o menor $n$ com $2^n \geqslant 64$: $2^6 = 64$, portanto 6 bits por pixel. Se usasse 65 cores, precisaria de 7 bits, porque 6 bits podem produzir apenas 64 padrões diferentes.

Vocabulário Treinar
English Português
pixel/ˈpɪksl/ pixel
resolution/ˌrezəˈluːʃn/ resolução
colour depth/ˈkʌlə depθ/ profundidade de cor
compression/kəmˈpreʃn/ compressão
bandwidth/ˈbændwɪdθ/ largura de banda
transmission/trænˈsmɪʃn/ transmissão
lossless/ˈlɒsləs/ sem perda
run-length encoding/rʌn leŋθ enˈkəʊdɪŋ/ codificação por comprimento de corrida
lossy/ˈlɒsi/ com perda
1.3

Medindo armazenamento de dados

Programa
Os candidatos devem ser capazes de: Notas e orientações
1 Entenda como o armazenamento de dados é medido • Incluindo: – bit – nibble – byte – kibibyte (KiB) – mebibyte (MiB) – gibibyte (GiB) – tebibyte (TiB) – pebibyte (PiB) – exbibyte (EiB) • A quantidade da denominação anterior presente no tamanho do armazenamento de dados, ex.: – 8 bits em um byte – 1024 mebibytes em um gibibyte
2 Calcule o tamanho de arquivo de uma imagem e de um áudio, usando informações fornecidas • As respostas devem ser dadas nas unidades especificadas na questão. Os cálculos devem usar a medida de 1024 e não 1000 • As informações fornecidas podem incluir: – resolução e profundidade de cor da imagem – taxa de amostragem, resolução e duração da faixa de áudio
3 Entenda o propósito e a necessidade de compressão de dados • A compressão existe para reduzir o tamanho do arquivo • O impacto disso, ex.: – menor largura de banda necessária – menos espaço de armazenamento necessário – tempo de transmissão mais curto
4 Entenda como os arquivos são comprimidos usando métodos de compressão com perda e sem perda • A compressão com perda reduz o tamanho do arquivo removendo permanentemente dados, ex.: reduzindo a resolução ou profundidade de cor, reduzindo a taxa ou resolução de amostragem • A compressão sem perda reduz o tamanho do arquivo sem perda permanente de dados, ex.: codificação por comprimento de sequência (RLE)

Fonte: Programa Cambridge International

O armazenamento de dados é medido nas unidades abaixo. Um nibble tem 4 bits e um byte tem 8 bits; a partir do kibibyte para cima, cada unidade é 1024 vezes a anterior (porque $1024 = 2^{10}$, que se encaixa no binário).

Unidade Equivale a
bit um único 0 ou 1
nibble 4 bits
byte 8 bits
kibibyte (KiB) 1024 bytes
mebibyte (MiB) 1024 KiB
gibibyte (GiB) 1024 MiB
tebibyte (TiB) 1024 GiB
pebibyte (PiB) 1024 TiB
exbibyte (EiB) 1024 PiB
Platos de disco rígido: o armazenamento é medido em bytes — saber o tamanho do arquivo exige largura × altura × profundidade de cor para imagens
Platos de disco rígido: o armazenamento é medido em bytes — saber o tamanho do arquivo exige largura × altura × profundidade de cor para imagens
Vocabulário Treinar
English Português
storage/ˈstɔːrɪdʒ/ armazenamento
sound wave/saʊnd weɪv/ onda sonora
Assistir aula
1.3

Calculando tamanho de arquivo

Tamanho do arquivo de imagem (em bits) $=$ resolução $\times$ profundidade de cor $=$ largura $\times$ altura $\times$ profundidade de cor.

Exemplo: uma imagem tem $1024 \times 1024$ pixels com profundidade de cor de 2 bytes ($= 16$ bits).

  • bits $= 1024 \times 1024 \times 16 = 16\,777\,216$ bits
  • bytes $= \div 8 = 2\,097\,152$ bytes
  • KiB $= \div 1024 = 2048$ KiB
  • MiB $= \div 1024 = 2$ MiB
Escala de unidades para a imagem de 1024 por 1024, com 16 bits: 16,777,216 bits divididos por 8 resultam em 2,097,152 bytes, divididos por 1024 resultam em 2048 KiB, divididos por 1024 resultam em 2 MiB
Para passar de bits a bytes, divide-se por 8; em cada etapa seguinte, divide-se por 1024

Tamanho do arquivo de som (em bits) $=$ taxa de amostragem $\times$ resolução de amostragem $\times$ duração em segundos.

Estas fórmulas contam dados não compactados sem cabeçalhos de arquivo. A fórmula de áudio é para um canal; multiplique pela contagem de canais se a questão especificar mais canais.

Sempre divida por 1024 (não 1000) para converter para KiB, MiB e assim por diante. Dê sua resposta na unidade solicitada pela questão.

Exemplo resolvido. Um som é gravado por 30 segundos a uma taxa de amostragem de 8,000 Hz com uma resolução de amostra de 16 bits. Encontre o tamanho do arquivo em kibibytes (KiB).

  • bits $= 8\,000 \times 16 \times 30 = 3\,840\,000$ bits
  • bytes $= 3\,840\,000 \div 8 = 480\,000$ bytes
  • KiB $= 480\,000 \div 1024 \approx 469$ KiB
1.3

Compressão

Compactação torna um arquivo menor. Um arquivo menor:

  • ocupa menos espaço de armazenamento,
  • precisa de menos largura de banda (a quantidade de dados que uma conexão pode transportar),
  • leva menos tempo para ser enviado (um tempo de transmissão mais curto).

Existem dois tipos.

Compactação sem perdas

Compactação sem perda torna o arquivo menor com nenhuma perda permanente de dados. O arquivo original pode ser reconstruído exatamente.

Um método é a codificação por comprimento de sequência (RLE). Ela substitui uma sequência de valores repetidos por uma cópia do valor e uma contagem de quantas vezes ele se repete. Por exemplo, WWWWWWWW (8 brancos) é armazenado como “8 W”. Isso funciona bem quando os dados têm muitas repetições.

Uma tira de 8 quadrados brancos seguidos de 4 vermelhos compactada nos pares 8 W e 4 R
A codificação por comprimento de corrida armazena cada corrida uma única vez como uma contagem e um valor

Exemplo resolvido. Uma linha de uma imagem em preto e branco é B B B B B W W B B B B B B B B B (16 pixels). Comprima-a com RLE e diga se houve economia de espaço quando cada contagem e cada cor são armazenadas em um byte.

As sequências são 5 pretos, 2 brancos, 9 pretos, então os dados em RLE são 5 B 2 W 9 B: 6 bytes em vez de 16 bytes do original (um byte por pixel). Há economia de espaço porque a linha tem sequências longas. Uma linha que muda de cor a cada pixel, B W B W …, se tornaria 1 B 1 W 1 B 1 W …, duas vezes maior que a original: RLE só ajuda quando os dados se repetem.

Compactação com perdas

Compactação com perda torna o arquivo muito menor removendo permanentemente alguns dados. Os dados removidos não podem ser recuperados. Por exemplo:

  • reduzir a resolução ou profundidade de cor de uma imagem,
  • reduzir a taxa de amostragem ou a resolução de amostragem de um som.

Use compactação sem perdas quando você precisar manter cada detalhe (arquivos de texto e programas). Use compactação com perdas para fotos, música e vídeo, onde uma pequena perda de qualidade vale um arquivo muito menor.

Explorar

Codificação por comprimento de corrida

Observe símbolos repetidos serem comprimidos numa contagem — compressão sem perdas simples.

1.3

Dicas de prova

  • Converta decimal → binário subtraindo os valores posicionais (128, 64, 32 …); binário → decimal somando os valores posicionais que contêm um 1.
  • Para converter para hexadecimal, agrupe o binário em nibbles de 4 bits da direita; cada nibble corresponde exatamente a um dígito hexadecimal.
  • Transbordamento ocorre quando um resultado está fora da faixa da representação escolhida. Inteiros sem sinal de oito bits armazenam 0–255; inteiros de complemento de dois de oito bits armazenam −128–127.
  • Tamanho do arquivo em bits: para uma imagem, largura × altura × profundidade de cor; para som, taxa de amostragem × resolução × segundos. Divida por 8 para bytes, depois por 1024 para cada unidade maior.
  • Compactação sem perdas mantém todos os bits (texto; codificação por comprimento de corrida); compactação com perdas remove dados permanentemente (fotos, música) para um arquivo muito menor.

Aulas interativas sobre este tópico

Passe por ele passo a passo, com exercícios de verificação instantânea.

Provas Anteriores

Mais tópicos em Ciência da Computação IGCSE

Entrar ou criar conta

IGCSE, A-Level & AP