|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Arthur Vartanov 2:5020/400 25 Apr 2002 23:07:37 To : Dmitry Teplyakov Subject : Re: Преобразование BCD-> Integer -------------------------------------------------------------------------------- Hello, Dmitry! You wrote in conference fido7.ru.algorithms to Sashka Yackubtchick on Thu, 25 Apr 2002 06:06:31 +0000 (UTC): DT> Да, я уже после понял, что неправильно сформулировал вопрос. Значит, DT> есть числовой ряд, например: 21 32 34 45. Все эти числа - DT> шестнадцатиричные, но понимать их надо так, как они написаны, т.е. DT> 21HEX-> 21 DEC. И весь этот ряд - DT> это десятичное число 21323445. Проблема в том, что эти данные DT> хранятся в файле, и когда я его читаю, то я читаю десятичное число, DT> т.е. вместо 21 я читаю 33 и т.д. Поэтому приходится прочитанное DT> число преобразовывать в HEX, причем текстовый, потом текст бить на DT> две части и каждую часть преобразовывать в число. А по всем этим DT> числам строить полином для получения нормального числа. Hо это все DT> очень медленно работает (записей порядка нескольких сотен тысяч). DT> Вот и интересуюсь как оптимизировать этот процесс. Для одного числа: (а - то, что ты прочитал из файла, b - то, что тебе надо) b = (a & 0xf) + (a >> 4)*10. Все очень быстро безо всяких преобразований в строки. Т.е. для 21 (0x21 & 0xf) + (0x21 >> 4)*10 = 1 + 2*10 = 21. Для нескольких чисел думаю сам догадаешься :) Sincerely, Arthur (arvar@penza.net) --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/39519901b4f1.html, оценка из 5, голосов 10
|