еще один вариант без таблицы, двоичный поиск(может быть с багами): mov eax,1;число цифр mov ebx,1 mov ecx,5 mov edx,10000 cmp esi,edx;сравниваем...
murder у Уорена в конце 11й главы: int ilog10(unsigned x) { int y; static unsigned table2[11]={0,9,99,...,999999999,0xFFFFFFFF};...
murder Если двоичный логарифм сразу преобразовать в десятичный, то табличка потребуется всего одна на 10 элементов. Ну а без таблички можно...
murder наиболее быстрое будет что-то типа bsr/log2(10), а потом по таблице сравнить исходное число со степенью десятки и при необходимости...
Twister Мы можем разбить второй файл на блоки не более размера дерева, тогда стоимость сортировки такого блока будет сравнима со стоимостью поиска...
dyn Берёшь самый короткий файл. Генерируешь файл содержащий все 12-байтные последовательности. Сортируешь этот файл удаляя все дубликаты. Потом...
l_inc У меня макросы были существенно проще: magic = 1 repeat 31 magic = (magic shl 1) xor ((magic shr 2) and 1) xor ((magic shr 4) and 1);...
Еще одна мысль: mov eax,[esi] mov ebx,[esi+4] mov ecx,[esi+8] mov edx,[esi+12] mov ebp,[esi+16] sub eax,40100401h sbb ebx,10040100h sbb...
cppasm Эту задачку для какого процессора решать требуется? Вариантов пока я вижу два: грузить в регистры и делать test/jz или сдвигать и делать OR...
Зачем вручную, когда макросы есть?) У меня был взят полином x^5+x^2+1, наугад, потом просто проверил, что число подходит. А вот откуда магических...
l_inc У меня хитрый mul в 4 команды поместился и еще 32 слова на табличку, теперь думаю чего бы можно сделать без таблицы.
l_inc Ну если учесть что сдвиг влево на k(или вправо на 31-k) можно получить умножением на 2^k, то особого смысла их запрещать нету. Сделав после...
l_inc Мне бы хотелось видеть решение без побитового разбора. У Уорена для обращения всех бит приводится такой код: t=((x>>1)^x)&0x55555555;...
поправка, получить нужно 2^(31-n)
l_inc Шикарный вариант, похоже по скорости ничего больше сравнивать не придётся) Задачка на закуску: В регистре EAX лежит число вида 2^n, нужно...
В EAX лежит 0. Требуется организовать максимально быстрый цикл do{...}while(EAX!=0), который последовательно перебирает все значения EAX, но...
Booster Угу, с таблицей на 256 байт слишком много операций получается, а вот с таблицей на 65536 по скорости почти сравнимо с кодом из 56 сообщения.
persicum А почему именно на 65536? А если L1 всего 32К, не лучше ли тогда использовать таблицу на 256 значений?
тему пора закрывать) 2. Правила обязательные для исполнения. 2.1 Запрещается создавать темы, не соответствующие тематике форума.
Intro Всего известно 3 или пока известно 3?
Имена участников (разделяйте запятой).