Conversão hexadecimal para decimal e vice versa

:?:Oi pessoal, estou com um pequeno problema em C
preciso criar um programinha para converter numeros hexadecimal para decimal e vice versa
Não sei quase nada de C, alguém poderia me ajudar?

Veja as funções abaixo:

O próprio printf converte, é só formatar o resultado com %X para hexadecimal.

decimal2hexadecimal () {
    int d;
    printf ("\tEntre com um numero decimal: ");
    scanf ("%d",&d);
    printf ("\tA conversao do numero %d em hex e %2X:\n",d,d);
    }

E para hexadecimal para decimal, basta receber os dados formatando a entrada no scanf

hexadecimal2decimal () {
    int h; 
    printf ("\tEntre com um numero hexadecimal: ");
    scanf ("%X",&h);
    printf ("\tA conversao do numero %X em decimal e %d :\n",h,h); 
}

%x Hexadecimal com letras minúsculas
%X Hexadecimal com letras maiúsculas
%o Número octal

Se o valor não for entrada e já estiver no programa em uma string use o sscanf:

#include <stdio.h>
int main()
{
    int i, j, k;
    char string1[]= "10 20 30";
    sscanf(string1, "%d %d %d", &i, &j, &k);
    printf("Valores em Hexa: %X, %X, %X", i, j, k);
    return 0;
}

Até mais…

Bom Dia ! :smiley:

Complementando a idéia do colega acima,

A função “printf” é a função para saída formatada de dados e funciona da seguinte forma: o primeiro argumento é uma string entre aspas (chamada de string de controle) que pode conter tanto caracteres normais como códigos de formato que começam pelo caracter de porcentagem.
Caracteres normais são apresentados na tela na ordem em que são encontrados. Um código de formato informa a função “printf” que um item não caracter deve ser mostrado. Os valores correspondentes encontram-se no segundo argumento (lista de argumentos).

SINTAXE: printf("",);

Obs.: Além de códigos de formato e caracteres normais a string de controle pode conter ainda caracteres especiais iniciados pelo símbolo “”.

Exemplos:

printf(“São %d horas e %d minutos.”, hora, minuto);

printf(“O nome é %s.”,nome);

printf("%d dividido por %d é igual a %f", n1, n2, (float)n1/n2);

printf(“O código de %c é %d”, letra, letra);

Códigos de formato:

Normalmente os códigos de formato são utilizados na sua forma mais simples:

%c -> caracter simples (CHAR)
%d -> decimal (INT)
%ld -> inteiro “longo” (LONG INT)
%f -> ponto flutuante (FLOAT)
%o -> octal
%s -> cadeia de caracteres (STRING)
%x -> hexadecimal
%lf -> double

Obs.: Deve haver uma variável ou constante para cada código de formato! O tipo das variáveis ou constantes também deve coincidir com os códigos de formato.

int a;
float b;
char c;
double d;

printf("%d %f %c %lf",a,b,c,d);

Espero ter ajudado.

Valeu abraço !