world to decimal

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

world to decimal

Mensagempor turuna » 04 Ago 2008 11:41

Amigos do fórum, alguém sabe uma maneira eficiente em C para separar por exemplo: 12345 em

reg_unidade = 5
reg_dezena = 4
reg_centena = 3
reg_ milhar = 2
reg_dez_milh = 1

Turuna :(
turuna
Nibble
 
Mensagens: 97
Registrado em: 10 Mar 2008 12:50

Mensagempor joao » 04 Ago 2008 12:00

Veja se é isso que vc quer:

char *teste = "12345";

int a = teste[0] - '0'; //-->1
int b = teste[1] - '0'; //-->2
int c = teste[2] - '0'; //-->3
int d = teste[3] - '0'; //-->4
int e = teste[4] - '0'; //-->5

[]'s
Avatar do usuário
joao
Byte
 
Mensagens: 463
Registrado em: 17 Out 2006 08:21

Mensagempor turuna » 04 Ago 2008 12:59

João, o brigado por responder, é quase isso, desculpe se estiver enganado ou explicado errado:

unsigned long int x = 12345;//ou qualquer valor
quando for aplicado a conversão na variável x será retornado em variáveis diferentes as unidades, dezena,centenas......

Turuna
turuna
Nibble
 
Mensagens: 97
Registrado em: 10 Mar 2008 12:50

Mensagempor ze » 04 Ago 2008 13:06

Código: Selecionar todos
unsigned int dmil,mil,cen,dez,un;
dmil=dado/10000;
mil=(dado-dmil*10000)/1000;
cen=(dado-dmil*10000-mil*1000)/100;
dez=(dado-dmil*10000-mil*1000-cen*100)/10;
un=dado-dmil*10000-mil*1000-cen*100-dez*10;


tem 1 maneira menos burra com %
a do prof. dá certo depois disto

Código: Selecionar todos
char* itoa(unsigned int value, char *string)
{
sprintf(string, "%5u", value); //%u=unsigned, %d=signed
return string;
}
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor andre_luis » 04 Ago 2008 13:10

Para char, uso o seguinte para imprimir num LCD :

Código: Selecionar todos
   
   char dig;
   dig = num / 100 + '0';
   if ( ( dig == 0 ) && ( ISCHRBRANCO ) ) SayChar( APAGADO );
     else SayChar( dig );
   dig = (num % 100) / 10 + '0';
   SayChar( dig );
   dig = (num % 10) + '0';
   SayChar( dig );




+++
"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

Mensagempor fabim » 04 Ago 2008 13:20

hehe,....
x : word;
y : string[5];

x := 65535;
WordToStr(x,y);

""y igual á (6 5 5 3 5)"
Eu amo pascal por isso..

Agora tem que tomar cuidado com os 0´s.
Nesse caso.
IntToStrWithZeroes(x,y);
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor turuna » 04 Ago 2008 15:22

Ok pessoal, grato pelas dicas.
Turuna :D
turuna
Nibble
 
Mensagens: 97
Registrado em: 10 Mar 2008 12:50


Voltar para PIC

Quem está online

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

x