whungry
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору basilevs Простите за цитирование самого себя, но всётаки: Цитата: Что эквивалентно использованию одной CRC. Вплоть до времени расчета CRC-сумм, если у вас конечно программы подсчёта CRC правильные (без наворотов из-за горе-программиста) | Как алгебраически вычисление CRC32+CRC16 быстрее, чем вычисление CRC48 из-за того,что вычисление ОСТАТКА деления на ПОЛИНОМ-48 сложнее и значит дольше. А вот алгоритмически такие полиномы реализуются через операции сдвига в регистрах, где на каждую операцию требуется одна ассемблерная команда. Возникает вопрос о том, что операнд должен целиком помещаться в регистре, а 48-битный операнд в i386 "пролетает". Но во-вторых, 64-битные процесоры уже вовсю пошли "в народ". В-третьих существует ассемблерная инструкция СКВОЗНОГО сдвига ДВУХ регистров. А во-первых, те программисты, у кого от ума не горе, а только радость, для подсчета CRC-XX используют табличные подстановки, где на ОДИН входной байт последовательности данных выполняется XX/8 подстановок по XX/8 таблицам соответственно (для CRC32 - по одному байту из 4 таблиц). Получаем, что для CRC32+CRC16 нужно (32/8)+(16/8)=4+2=6 операций, а для CRC48 потребуется уже (48/8)=6 операций. Почувствуйте разницу. И снова арифметика рулит! А "залезать" в алгебру - дык, мы ведь Академиев имени ФСФ не кончали. В-прочем, если интересно, читай P.S. P.S. Данную тему в своё время пришлось осваивать методом "научного" тыка (ну не было у меня программисткого образования за иключением одного семетра языка FORTRAN). И даже, не смотря на в целом о-о-очень приличное образование, курса "Теория чисел" у нас не было (самому не понятно почему). Жутко комплексуя, полез я в книги, чтобы самообразованием это как-то поправить. Так вот, оказалось, что всякие университетские курсы и учебники замечательно подходят для .... доказательства теорем. А для понимания МЕХАНИКИ процесса - совсем наоборот. Мой практический опыт программирования оказался нагляднее и понятнее. И читая про знакомые вещи часто ловил себя на мысли "Экак батенька у Вас всё запуще.. то есть запутано!" Не берусь распространять этот подход на всё программисткое образование, но определённый компромис между теорией и практикой наобходим - это точно. Причём именно компромисс, в смысле его определения - "то, с чем согласны все, но что не устраивает никого". P.S.S А может пора закрыть ветку - два года никто не интересовался вопросом (я сам - исключение: сначала запостил, потом на дату посмотрел) ? |