Converter um char em um valor decimal

Programação C em geral

Moderadores: 51, guest2003

Converter um char em um valor decimal

Mensagempor Cefas » 11 Nov 2013 22:14

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....???
Cefas
Nibble
 
Mensagens: 58
Registrado em: 26 Dez 2011 19:47

Re: Converter um char em um valor decimal

Mensagempor styg » 12 Nov 2013 10:23

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??
Lucas
Avatar do usuário
styg
Word
 
Mensagens: 799
Registrado em: 16 Out 2006 08:24
Localização: Floripa abaixo de zero.

Re: Converter um char em um valor decimal

Mensagempor andre_luis » 12 Nov 2013 19:05

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 ;




+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ


Voltar para Visual C++/C/C++/C#

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x