Um circuito fotodetector é usado para gerar um pulso a cada vez que um cliente entra em um determinado estabelecimento. Os pulsos são aplicados em um contador de 8 bits. O contador é usado para determinar quantos clientes entraram na loja. Depois de fechar a loja, o proprietário observa a contagem 00001001_{2}=9_{10}. Ele sabe que esse valor não está correto, porque entraram muito mais que nove pessoas na loja. Considerando que o circuito do contador funciona corretamente, qual seria o motivo da discrepância?

Passo 1

O enunciado dá as seguintes informações e faz esta pergunta:
  • Informação: um circuito fotodetector gera um pulso a cada cliente que entra. Esses pulsos alimentam um contador de 8 bits.
  • Informação observada: após o fechamento o proprietário vê a contagem 00001001_{2}=9_{10}.
  • Informação adicional do enunciado: o proprietário sabe que entraram muito mais que nove pessoas.
  • Pergunta: considerando que o circuito do contador funciona corretamente, qual é o motivo da discrepância entre o número real de clientes e o valor 9 observado?

Passo 2

Vamos entender o que significa “contador de 8 bits” de forma bem prática e passo a passo.
Um contador de 8 bits armazena um valor binário com 8 dígitos (bits). Cada bit representa uma potência de dois. Se chamarmos os bits de b_7,b_6,\dots,b_0 (onde b_7 é o bit mais significativo), o valor decimal representado é
\sum_{i=0}^{7} b_i 2^{i}.
O maior valor possível ocorre quando todos os bits valem 1, isto é 11111111_{2}. Calculando em decimal isso dá
11111111_{2} = 2^{7}+2^{6}+\cdots+2^{0} = 2^{8}-1 = 255_{10}.
Portanto um contador de 8 bits pode representar valores de 0 até 255.

Passo 3

Agora o conceito importante: o que acontece quando chegam mais pulsos do que o contador pode armazenar?
Quando o contador recebe um pulso e já está no valor máximo 255, o próximo pulso o faz “rodar” para 0 e continuar contando a partir daí. Esse comportamento é chamado de overflow ou rolamento (rollover). Em linguagem matemática isso significa que o contador registra o número total de pulsos reduzido módulo 256 (porque 256=2^{8}). Ou seja, o valor exibido pelo contador é o resto da divisão do número total de pulsos por 256.

Passo 4

Aplicando isso ao caso concreto: o contador mostra 00001001_{2}=9_{10}. Então o que foi realmente mostrado é o número total de pulsos modulo 256. Escrevemos o número real de clientes N como
N = 256k + 9,
para algum inteiro k\ge 0. Cada valor de k corresponde a um número de vezes que o contador completou um ciclo de 0 a 255 e voltou a 0. Exemplos para fixar a ideia:
  • Se k=0 então N=9 (apenas 9 pessoas).
  • Se k=1 então N=256+9=265 pessoas — o contador rolou uma vez e terminou em 9.
  • Se k=2 então N=512+9=521 pessoas — rolou duas vezes, e assim por diante.
    Como o proprietário sabe que entraram muito mais que 9 pessoas, o caso mais simples é que k\ge 1, ou seja, o contador fez pelo menos um overflow.

Passo 5

Conclusão didática e rápida dica prática: o motivo da discrepância é que o contador de 8 bits “rolou” (overflow) porque o número de clientes excedeu 255. O contador mostrou apenas o restante da divisão por 256. Para evitar esse problema na prova ou na prática, pode-se usar um contador com mais bits (ex.: 16 bits), encadear contadores para ampliar capacidade, ou ler/resetar o contador periodicamente para não perder contagens por overflow. Você tá indo bem — esse tipo de raciocínio modular aparece muito em provas e é só lembrar que contadores digitais contam "modulo 2^n".

Resposta

O contador de 8 bits sofreu overflow (rolamento): ele conta modulo 256, logo o número real de clientes é N=256k+9 para algum inteiro k\ge0 (por exemplo, 265,521,\dots se k\ge1).

Exercícios relacionados