Faça um programa que imprima a tabela ASCII (código decimal, código hexadecimal, caracter) para códigos entre 0 a 127.
Passo 1
Beleza, o enunciado pede: “Faça um programa que imprima a tabela ASCII (código decimal, código hexadecimal, caracter) para códigos entre 0 a 127.”
Conteúdo: lógica de programação em C (ou qualquer outra linguagem), estrutura de repetição (laço) e formatação de saída (
O que vamos precisar:
Conteúdo: lógica de programação em C (ou qualquer outra linguagem), estrutura de repetição (laço) e formatação de saída (
printf).O que vamos precisar:
- Entender o que é a tabela ASCII (mapa de números para caracteres).
- Usar um laço
forque percorre todos os valores deaté . - Formatar a saída para mostrar o número em decimal, em hexadecimal e o caractere correspondente.
Passo 2
Teoria rápida sobre ASCII e laços:
ASCII é uma tabela que associa números inteiros aos caracteres (letras, dígitos, símbolos, control chars). Cada código varia de a
.
O laço
ASCII é uma tabela que associa números inteiros aos caracteres (letras, dígitos, símbolos, control chars). Cada código varia de
O laço
for em C tem a forma geral:for (inicialização; condição; incremento) {
// bloco a repetir
}
Aqui a inicialização é
int i = 0;, a condição é i <= 127; e o incremento é i++ (aumenta 1 a cada iteração).Passo 3
Como imprimir em formatos diferentes?
%dnoprintfmostra o valor decimal.%X(ou%x) mostra em hexadecimal.%cmostra o caractere ASCII correspondente.
Exemplo de uso:
printf("%3d %2X %c\n", i, i, i);
Isso alinha melhor os números e caracteres.
Passo 4
Montando o programa completo em C:
- Incluímos a biblioteca
<stdio.h>para usarprintf. - No
main(), criamos o laçofor (int i = 0; i <= 127; i++). - Dentro do laço, chamamos
printfcom os três formatos. - Opcionalmente, imprimimos um cabeçalho antes do laço.
Resposta
#include <stdio.h>
int main() {
// Cabeçalho da tabela
printf("Dec Hex Char\n");
printf("----------------\n");
// Laço de 0 até 127
for (int i = 0; i <= 127; i++) {
// %3d alinha decimal, %2X alinha hex, %c imprime o caractere
printf("%3d %2X %c\n", i, i, i);
}
return 0;
}