Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Суббота
23 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Микроконтроллеры AVR
637111
Топик полностью
йцукен
(09.12.2015 18:23, просмотров: 1)
ответил
PeterD
на
Как можно посчитать быстро a = (b*c)/(2^64) где unsigned int a; unsigned long int b; const unsigned long int c; Если короче а 32 бита, и b и с 64 бита.
Быстро - это быстрее чем кто? Мне кажется, сэкономить можно только не вычисляя все или часть из 8 байтов, которые отбрасываются. При этом не будут учитываться возможные переносы из них, не знаю, насколько это для вас критично.
По факту это ж умножение с фиксированной точкой получилось. [32].[32] * [32].[32] = [64].[64], берётся целая часть результата, да и та обрезается до [32].[0]; в общем случае — на входе хрен чего выкинешь, надо диапазоны входных смотреть. И в любом
Николай Коровин
(895 знак., 09.12.2015 20:24
)