ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
8 мая
1268053 Топик полностью
Dingo (14.12.2022 12:31, просмотров: 90) ответил Dingo на Деление 64 бит для пропорции. Хочу перевести тиков таймера за секунду в дробную 32-битную часть секунды. Пусть будет 12 Мгц (не совсем круглое) . Пропорция x/2^32 = y/12M, x = 2^32*y/12M. Тут для умножения и деления надо преобразовать операнды в 64 бит. gcc цепляет __aeabi_uldivmod которая использует __udivmoddi4 с большим количеством инструкций. Как сравнить этот способ с описанным дальше?
Замеры быстродействия в попугаях на 50к цикле подготовленных псевдорандомных аргументов: 1)через div uint64_t - 1763274; 2) "перевод через целые" - 1817813; 3) по SciFi - 187446 (полностью совпадающих результатов меньше ста ); Первые 2 могут с произвольным диапазоном работать, а не константой.