ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
10 мая
637152 Топик полностью
Николай Коровин (09.12.2015 20:24, просмотров: 161) ответил йцукен на Быстро - это быстрее чем кто? Мне кажется, сэкономить можно только не вычисляя все или часть из 8 байтов, которые отбрасываются. При этом не будут учитываться возможные переносы из них, не знаю, насколько это для вас критично.
По факту это ж умножение с фиксированной точкой получилось. [32].[32] * [32].[32] = [64].[64], берётся целая часть результата, да и та обрезается до [32].[0]; в общем случае — на входе хрен чего выкинешь, надо диапазоны входных смотреть. И в любом случае, что частном, что общем, для такого ИМХО надо на асме писать функцию быстрого перемножения — поскольку много что в выхлоп не записывается, его можно и не считать. Это делается в столбик, как ни странно :)
                    BBBB.BBBB
                   ×
                    CCCC.CCCC
       ----------------------------
                   .AAAA AAAA
                  A.AAAA AAA
                 AA.AAAA AA
                AAA.AAAA A
        +      AAAA.AAAA
             a AAAA.AAA
            aa AAAA.AA
           aaa AAAA.A
          a последний перенос
--------------------------------------------
          aaaa AAAA.aaaa aaaa
Маленькие a можно не считать, всё равно обрежутся. От тех, которые суммируются в маленькие a, важны только переносы. Подмухлевав порядок сношательства с регистрами, можно сделать так, чтобы мусора хранилось поменьше.