На C такое грустно выписывать. Или на асме, или лучше воспользоваться ОДНОЙ библиотечной функцией для вычисления и частного, и отсатка :-) (Кстати, см ниже мой вариант на тему int2str, только там много всего, лень было вырезать ненужное) (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
div_t dt = div( твоё_число, 10); остаток в dt.rem dt = div( dt.quot, 10); // это повторять
Функция div() - часть стандартной библиотеки и есть практически во всех компиляторах. В случае отсутствия у процессора аппаратного деления она просто-напросто реализует высокоуровневый интерфейс к внутренней функции компилятора, которая реализует деление. А алгоритм деления всегда даёт и частное, и остаток. Итого что при '/', что при '%' в выражении компилятор вызывает эту внутреннюю функцию и берёт нужную часть её работы.