Número mágico (informática)

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Esta página ou se(c)ção não cita fontes fiáveis e independentes (desde outubro de 2010). Por favor, adicione referências e insira-as no texto ou no rodapé, conforme o livro de estilo. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros, acadêmico)Yahoo!Bing.

Número mágico é um termo usado em informática para designar constantes especiais usadas para definir um certo propósito, usualmente escolhidas de forma arbitrária. Eles são chamados de mágicos pois a sua presença é inexplicável sem um conhecimento prévio do seu uso, seja informal com o criador da constante ou formal através de documentação.

Aplicação em formato de arquivos[editar | editar código-fonte]

Números mágicos são usados em arquivos para que o formato de seu conteúdo possa ser reconhecido independente de formas externas. Cada sistema operacional tenta identificar o tipo dos arquivos de formas diferentes. O Windows utiliza extensões, enquanto os sistemas operacionais Mac OS usam meta-dados, que são gravados de forma independente.

Os sistemas baseados no UNIX, normalmente usam o próprio conteúdo do arquivo para determinar o tipo. Para isso foi convencionado que os dois primeiros bytes dos arquivos devem trazer um número mágico que identifica seu formato. Inicialmente o comando file era usado para determinar o tipo, porém em ambientes gráficos modernos estes números mágicos ainda são usados para determinar os tipos e conseqüentemente a forma mais adequada de representá-los graficamente.

Mesmo arquivos criados por programas em sistemas operacionais que usam outros métodos para determinar o tipo de arquivo possuem números especiais para que seja possível distinguí-los de outros tipos de arquivo apenas por seu conteúdo. Esses identificadores, apesar de não seguirem a convenção inicial dos sistemas UNIX, também podem ser considerados números mágicos. Alguns exemplos incluem:

  • Arquivos de código compilado para bytecode Java tem no início o número 0xCAFEBABE (hexadecimal) nos sistemas do tipo big endian.
  • Imagens do tipo GIF tem no seu início a string ASCII GIF89a ou GIF87a.
  • Imagens PNG iniciam com uma assinatura de 8 bytes que permite a identificação de alguns problemas comuns de transmissão, como 0x89504e470d0a1a0a (hexadecimal).

Números mágicos em programação[editar | editar código-fonte]

Em programação o termo número mágico é dado para números que aparecem no código, geralmente sem explicação. São chamados de mágicos por ironia; o seu uso não é considerado uma boa prática de programação.

A maior parte das linguagens de programação permite que criem nomes descritivos para representar estes números. Estes nomes são chamados constantes. Seu uso facilita a leitura e a manutenção do código. O uso de constantes é preferível ao de números mágicos.

Exemplo: Suponha que um programa de cálculo trigonométrico faça uso do número π em diversos lugares. A princípio o programador usou a aproximação 3.14 e a colocou numericamente em todos os lugares que ela era necessária. O número 3.14 a princípio é facilmente reconhecível como π por qualquer pessoa com algum conhecimento de matemática. Porém nos testes o programador descobriu que precisaria de uma aproximação melhor, como 3.1415926. Agora ele tem que procurar todas as ocorrências de 3.14 no programa e substituí-la pela nova aproximação. Este procedimento é trabalhoso e sujeito a erros. Se o programador tivesse usado uma constante com o nome PI, em vez do número mágico 3.14, bastaria mudar a aproximação na definição da constante.

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.