А на чем пишем? На С, на асме?
Еще один способ, может пригодится.... Не деление в прямом смысле слова, но результат дает.
Ковертируем делимое в строку: 2949673 -> "2949673". Наверняка такая функция уже есть готовая.. Для деления на 10 достаточно "откусить" от строки один знак справа, получим "294967". На 100 - откусываем 2 знака - "29496". Конвертируем полученную строку в число - тоже стандартная и не слишком затратная процедура. Для оптимизации откусывание можно объединить с конвертированием. Оно ведь всегда справа начинается.
Родственные алгоритмы применяются в кассовых аппаратах, т.к. там никто никогда плавающую точку и прочие "долгоиграющие" алгоритмы не реализовывает. И все основано на подобных "хитростях". По сути - двигаем десятичную точку вправо или влево.
Сообщение отредактировал hd44780 - Apr 26 2011, 07:01
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|