Ir ao conteúdo

Escrevendo em Hexa


idema3d

Posts recomendados

Postado

Bem estou com dificuldade em solucionar um problema q estou enfrentando. Estou tentando obter dados através de uma entrada de um microcontrolador e na sequencia queria escrever o valor digital que foi lido nessa entrada em um display, mas esse valor teria q ser escrito no formato Hexadecimal, alguém saberia como fazer isso em linguagem C, se puderem me dar alguma dica ou indicar algum material ficaria grato.

Postado

Hum, tem sprintf? Ele já faz a "conversão". Tenta isso aí:

 
int main()
{
int num;
char numEmHexa[10];

printf("Entre com o numero: ");
scanf("%d", &num);
sprintf(numEmHexa, "%x", num);
printf("Numero em hexa: %s\n", numEmHexa);
}

Se não tiver o sprintf, vai ter que codificar na mão. Algo como:


int main()
{
unsigned int num;
char numEmHexa[10];
char charHexa[16] = {'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

printf("Entre com o numero: ");
scanf("%d", &num);

numEmHexa[0] = charHexa[ ((num & 0xF0) >> 4) ];
numEmHexa[1] = charHexa[ (num & 0x0F) ];
numEmHexa[2] = '\0';

printf("Numero em hexa: %s\n", numEmHexa);
}

JP

p.s.: nenhum dos códigos está verificando erros, etc. E esse último só está pegando valores de 8 bits. Mas se você mexe com microcontrolador já sabe como fazer para números maiores.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!