Есть ли более эффективный способ разбить число на цифры?

Мне нужно разбить число на цифры, чтобы отобразить его на ЖК-дисплее. Сейчас я использую следующий метод:

pos = 7;

do
{
    LCD_Display(pos, val % 10);
    val /= 10;
    pos--;
} while (pos >= 0 && val);

Проблема с этим методом заключается в том, что деление и по модулю операции на микроконтроллере MSP430 выполняются очень медленно. Есть ли альтернатива этому методу, которая либо не предполагает деления, либо сокращает количество операций?

Примечание: я не могу использовать какие-либо библиотечные функции, такие как itoa . Библиотеки большие, а сами функции довольно требовательны к ресурсам (как с точки зрения количества циклов, так и использования ОЗУ).

15
задан alex 10 February 2012 в 08:35
поделиться