Por que o menor número de 4 algarismos não é 0000
A primeira coisa que muita gente confunde ao pensar em números de 4 dígitos é se o zero pode começar a sequência. Se você colocar 0000, já resolveu, certo? Errado. Números na posição de milhares precisam de um dígito não nulo para serem considerados válidos. O menor número de 4 algarismos é, portanto, 1000. Isso parece óbvio, mas o erro aparece com frequência em sistemas legados e em planilhas mal formatadas onde valores como 0001 acabam sendo lidos como 1. Quem trabalha com códigos de barras, CPF, números de protocolo ou qualquer campo numérico fixo vê isso todo dia. O sistema entende 0001 como 1, o que quebra validações e gera dados corrompidos.
Como calcular o menor número de 4 algarismos
O raciocínio é direto. Um número de 4 algarismos precisa ocupar exatamente 4 casas decimais. A posição mais à esquerda — a unidade de milhar — não pode ser zero. Então o menor valor possível nessa casa é 1, e todas as demais ficam como zero. Resultado: 1000. Se você estiver trabalhando com uma linguagem de programação, pode gerar essa lógica assim:
pow(10, 3) = 1000 Em Python, JavaScript, C, Java — funciona igual. A base 10 elevada a 3 dá exatamente o primeiro número com 4 dígitos. É assim que validadores de entrada costumam funcionar por baixo dos panos.
Já vi gente usar expressões regulares do tipo ^\\d{4}$ para validar campos de 4 dígitos. Isso pega 0000 a 9999. O problema é que 0000 é um número de 1 algarismo, não de 4. A regex correta pra validar efetivamente números de 4 dígitos seria ^[1-9]\\d{3}$. Ela exige que o primeiro dígito seja de 1 a 9 e que sigam-se exatamente 3 outros dígitos. Isso filtra 0000, 0001, 0123 e qualquer outra variante com zeros à esquerda que não representa um número de 4 algarismos de verdade.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Quando a coisa fica mais complicada
Te conto um caso recente que tive num projeto de integração fiscal. A SEFAZ enviava IDs de nota com 4 dígitos, mas alguns fornecedores emitiam com leading zeros — tipo 0047. Meu código tratava isso como inteiro e 0047 virava 47. A validação falhava porque eu estava comparando o número com a string original sem normalizar. A solução foi tratar tudo como string durante a comparação e só converter para int após validar o comprimento. Não adianta confiar no tipo numérico puro quando a representação visual importa. Outro ponto que muita gente perde: em bases diferentes de 10, o menor número de 4 algarismos muda. Em base 2, por exemplo, seria 1000 em binário, que é 8 em decimal. Em base 16, seria 1000 em hexadecimal, igual a 4096 em decimal. Se você está lidando com sistemas embarcados ou criptografia, isso faz diferença real.
Também é bom saber que o maior número de 4 algarismos é 9999. Qualquer coisa acima disso entra automaticamente em 5 dígitos. Isso define limites práticos para tabelas, índices e campos de banco de dados. Usar SMALLINT (que vai de -32768 a 32767) é suficiente, mas se quiser economizar espaço e garantir que ninguém insira 5 dígitos, um campo TINYINT UNSIGNED só aguenta até 255 — claramente insuficiente. O ideal aqui é SMALLINT com restrição CHECK se o SGBD permitir.
Armazenamento e performance
Em termos de armazenamento, números de 4 dígitos cabe perfeitamente em um INT de 4 bytes. MySQL usa 4 bytes para INT padrão, então não há perda. Se estiver usando MongoDB ou um sistema que armazena como string, cada caractere ocupa 1 byte em UTF-8, então "1000" gasta 4 bytes também — exatamente o mesmo custo. A diferença é que string exige mais processamento para comparações matemáticas e não permite operadores aritméticos nativos sem casting. Para indexação, tanto faz. Um índice B-tree em 1000 funciona da mesma forma que em qualquer outro integer pequeno. O custo de manutenção do índice é insignificante nessa faixa.
Erros comuns que todo mundo comete
Um erro frequente é confundir menor número de 4 algarismos com menor número inteiro de 4 dígitos em contexto negativo. Seirmos negativos, -9999 seria o menor em valor absoluto, mas em termos de magnitude o menor valor numérico seria -9999. A questão aqui é que "menor número de 4 algarismos" normalmente se refere ao menor valor positivo, ou seja, 1000. Sempre deixe isso claro no requisito. Outro erro é achar que 0100 é um número de 4 algarismos. Não é. É 100, que tem 3 algarismos. O zero à esquerda é apenas um padding visual, não um algarismo significativo. Em muitos sistemas de cobrança e faturamento, esse tipo de confusão gera duplicidade de registros.
Se você está construindo uma API que recebe códigos de 4 dígitos, valide sempre a string de entrada antes de converter. Use um endpoint de health check que retorne validação em lote — isso economiza retries e evita que dados inválidos entrem no fluxo produtivo. Resumindo: o menor número de 4 algarismos é 1000. A definição é simples, mas a aplicação prática tem armadilhas que só aparecem quando o sistema está no ar e os dados errados começam a acumular.