Quantos Valores Distintos Podem Ser Representados Por 5 Bits
Entendendo a capacidade de representação com 5 bits
Um bit só pode estar em dois estados: 0 ou 1. Quando você junta vários bits, o número de combinações possíveis cresce exponencialmente. A regra básica é simples: n bits representam 2^n valores distintos. Para 5 bits, isso dá 2^5 = 32 valores diferentes, indo de 0 a 31 no sistema decimal. A resposta direta é 32. Mas a parte que as pessoas costumam pular e que gera erro na prática é entender como esses 32 valores são distribuídos dependendo do contexto. Se você estiver trabalhando com números inteiros sem sinal, os valores vão de 0 a 31. Se for com sinal usando complemento para dois, o intervalo muda para -16 a +15. A mesma quantidade de bits, intervalos completamente diferentes. Eu já vi pessoal confundir isso em um projeto de comunicação serial onde precisávamos mapear 32 comandos distintos. O protócolo usava 5 bits, então teoricamente cabia tudo. O problema é que um dos comandos era o "reset de fábrica" e acabamos acionando por engano porque o buffer do receptor estava enviando sequências aleatórias que caíam no espaço de endereçamento válido. A solução foi adicionar um bit de paridade e reduzir o espaço útil para 16 comandos, mesmo que isso significasse desperdiçar parte da capacidade. Vale mais um sistema que não dispara comandos críticos por acidente do que um que aproveita cada bit e quebra coisas.
O cálculo em si não tem mistério. Multiplique 2 por si mesmo cinco vezes: 2 × 2 × 2 × 2 × 2 = 32. Ou use a função pow(2, 5) em qualquer linguagem de programação. Em Python seria pow(2, 5) e o resultado é 32. Em C você pode usar o operador de deslocamento à esquerda: 1 <
5, que também resulta em 32. Deslocamento de bits é uma forma rápida e eficiente que compiladores otimizados exploram há décadas. Um detalhe que muita gente não leva a sério na hora de projetar sistemas embutidos: o overhead de synchronization. Se você está transmitindo 5 bits por frame em um link assíncrono, precisa considerar bits de start, stop e possivelmente paridade. Um frame típico com 1 bit de start, 5 bits de dados e 1 bit de stop consome 7 bits no fio, mas só carrega 5 de informação útil. Isso reduz a eficiência para cerca de 71%. Em links de baixa velocidade, como RS-232 rodando a 9600 bps, isso se traduz em throughput efetivo de aproximadamente 685 bytes por segundo quando você empacota dados em unidades maiores. Não é muito, mas é previsível. Outro ponto que passa despercebido é a questão do unsigned versus signed. Quando alguém diz "5 bits", a primeira suposição é que os valores vão de 0 a 31. Mas em processadores modernos, a representação com sinal é tão comum que assumir o oposto pode custar bugs difíceis de rastrear. Um valor binário de 11111 em unsigned é 31. No mesmo formato, em complemento para dois com 5 bits, 11111 representa -1. O hardware não distingue sozinho qual interpretação você quer; cabe ao software aplicar a máscara certa antes de fazer qualquer operação aritmética.
Se o seu objetivo é apenas saber o número, a resposta é 32 valores distintos. Se o objetivo é usar isso em um projeto real, considere sempre o mapeamento de valores, o formato de representação e os bits de controle que acompanham a transmissão. 5 bits não são apenas 5 bits no mundo real.

Galeria
-
Quantos Valores Podem Ser Representados Com 8 Bits - RETOEDU -
Escalas de Bits e Bytes | PDF | Byte | Mordeu