|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alexander Chelmodeev 2:5062/17.5 25 Apr 2002 22:15:24 To : Dmitry Teplyakov Subject : Преобразование BCD-> Integer -------------------------------------------------------------------------------- 25 Апp 2002 Чт в 10:06 : Dmitry Teplyakov --> Sashka Yackubtchick: SY>> Вопрос не совсем понятен - что такое обычное десятичное? DT> Да, я уже после понял, что неправильно сформулировал вопрос. Значит, DT> есть числовой ряд, например: 21 32 34 45. Все эти числа - DT> шестнадцатиричные, но понимать их надо так, как они написаны, т.е. DT> 21HEX-> 21 DEC. И весь этот ряд - это десятичное число 21323445. DT> Проблема в том, что эти данные хранятся в файле, и когда я его читаю, DT> то я читаю десятичное число, т.е. вместо 21 я читаю 33 и т.д. Поэтому DT> приходится прочитанное число преобразовывать в HEX, причем текстовый, DT> потом текст бить на две части и каждую часть преобразовывать в число. DT> А по всем этим числам строить полином для получения нормального числа. DT> Hо это все очень медленно работает (записей порядка нескольких DT> сотен тысяч). Вот и интересуюсь как оптимизировать этот процесс. Можно сдвигом просуммировать с умножением на 10, можно проще: for n:=0 to 3 do z:= z+((y[n] div 16)*10 + y[n] mod 16)*power(10,n); где у - аrray [0..3] of byte ... http://ichip.chat.ru ... mailto:ichip(a)chat.ru --- GoldED+/386 1.1.5-20010807 rev.0813 (MS-DOS 7.10 pc) * Chip&Deal * * Origin: Вoт тебе пoл цapствa и пoл кoня. (2:5062/17.5) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/147063cc8849e.html, оценка из 5, голосов 10
|