Página 1 de 1

Converter um char em um valor decimal

MensagemEnviado: 11 Nov 2013 22:14
por Cefas
Olá pessoal do forum!

Não tenho grande experiência em programação em C e estou com uma dúvida. Como faço para converter isso:
X+050750Y+065500, eu recebo pela UART, caractere por caractere em uma Fila - FIFO.
tipo assim:

X 1º TRATA
+ 2º TRATA
0 3º TRATA
5 4º TRATA
.
.
.

Estou fazendo de um jeito burro.
Assim:
unsigned long converte (char rx)
{
switch(rx)
{
case 'X' :
return 88;
case '+':
return 43;
.
.
.
}
}

FICANDO DESSA MANEIRA UMA FUNÇÃO GIGANTESCA.
COMO FAÇO PARA SIMPLIFICAR ISSO....???

Re: Converter um char em um valor decimal

MensagemEnviado: 12 Nov 2013 10:23
por styg
Cara, pra que você tá fazendo isso? Se você jogar o valor que você recebeu direto na sua string ou sei lá onde vai usar, caso tenha recebido um "X", não vai aparecer um "X" no seu código e sim o equivalente em hexa, daí quando for exibir ou usar pra alguma coisa você trata esse valor por exemplo separando letras de números...
Qual o teu objetivo??

Re: Converter um char em um valor decimal

MensagemEnviado: 12 Nov 2013 19:05
por andre_luis
Código: Selecionar todos
switch(rx)
{
case 'X' : return 88;
case '+' : return 43;
}

Na verdade, mesmo essa implementação já é redundante, pois o C já seria capaz de fazer naturalmente o casting do ASCII para o DEC, assumindo que esse seja o radix configurado no IDE, que é na verdade o padrão.

Código: Selecionar todos
Buffer[i++] = rx ;




+++