Decodificando valores de caracteres: por que subtrair '0' divulga a representação numérica
Surge uma pergunta intrigante: por que subtrair '0' de um caractere em C revela o valor numérico que ele representa?
Para desvendar esse enigma, vamos nos aprofundar no reino do ASCII (American Standard Code para Intercâmbio de Informações), que atribui códigos numéricos a cada caractere. '0' mantém a primeira posição nesta sequência numérica, com caracteres subsequentes atribuídos de forma incremental a valores mais altos.
Por exemplo, '9' representa o valor numérico 57, enquanto '0' corresponde a 48. Ao subtrair '0 ' de um caractere, calculamos essencialmente a diferença entre seu código ASCII e o código ASCII de '0'.
Considere o exemplo: char c = '9'; int x = (int)(c - '0');
Aqui, '9' tem um código ASCII de 57. Subtrair '0' (que tem um código ASCII de 48) resulta em 57 - 48 = 9, que é precisamente o valor numérico representado por '9'.
A tabela ASCII a seguir ilustra melhor isso conceito:
Caracter | ASCII Código |
---|---|
'0' | 48 |
'1' | 49 |
'9' | 57 |
Por subtraindo '0' de qualquer caractere, podemos decodificar efetivamente o valor numérico que ele representa, uma técnica comumente empregada em várias aplicações de programação.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3