world to decimal

Enviado:
04 Ago 2008 11:41
por turuna
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


Enviado:
04 Ago 2008 12:00
por joao
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

Enviado:
04 Ago 2008 12:59
por turuna
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

Enviado:
04 Ago 2008 13:06
por ze
- 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;
}

Enviado:
04 Ago 2008 13:10
por andre_luis
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 );
+++

Enviado:
04 Ago 2008 13:20
por fabim
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);

Enviado:
04 Ago 2008 15:22
por turuna
Ok pessoal, grato pelas dicas.
Turuna
