23-01-2018, 21:21
Boas.
Neste momento ando de volta de um programa que vou usar num microcontrolador. No entanto surgiu--me aqui uma dúvida numa função recursiva que tem como finalidade converter um número em código ASCII e enviar para um display. Consigo perceber como se converte um qualquer número para os respectivos caractéres ASCII, no entanto não consigo compreender o funcionamente da seguinte função.
Alguém me pode explicar como é feita esse divisão utilizando esta função para, por exemplo, o numero 123?
Obrigado.
void enviaNumero_LCD(unsigned int numero)
{
if (numero > 9)
{
enviaNumero_LCD(numero / 10);
enviaCaracter_LCD('0' + (numero % 10));
}
else {
// Se só tem um algarismo
enviaCaracter_LCD('0' + numero); // Converte o número/algarismo para ASCII
}
}
Neste momento ando de volta de um programa que vou usar num microcontrolador. No entanto surgiu--me aqui uma dúvida numa função recursiva que tem como finalidade converter um número em código ASCII e enviar para um display. Consigo perceber como se converte um qualquer número para os respectivos caractéres ASCII, no entanto não consigo compreender o funcionamente da seguinte função.
Alguém me pode explicar como é feita esse divisão utilizando esta função para, por exemplo, o numero 123?
Obrigado.
void enviaNumero_LCD(unsigned int numero)
{
if (numero > 9)
{
enviaNumero_LCD(numero / 10);
enviaCaracter_LCD('0' + (numero % 10));
}
else {
// Se só tem um algarismo
enviaCaracter_LCD('0' + numero); // Converte o número/algarismo para ASCII
}
}