Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Суббота
23 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Микроконтроллеры AVR
637179
Топик полностью
m16_home
(09.12.2015 22:08, просмотров: 235)
ответил
PeterD
на
Как можно посчитать быстро a = (b*c)/(2^64) где unsigned int a; unsigned long int b; const unsigned long int c; Если короче а 32 бита, и b и с 64 бита.
результат вычисления unsigned int a имеет четыре значения : 0, 1, 2, 3. зачем "а" 32-х разрядная? и зачем такие разрядности ? либо ашипка в формуле либо разрядность урезать. я неправ?
Ответить
Капитан Очевидность сообщает, что таки неправ. b и c по 64 бита, произведение - 128 бит. Деление на 2
64
оставляет 64 бита. Я неправ?
-
SciFi
(09.12.2015 22:13
)
вот смотри( (2
64
-1)*(2
64
-1) )/ 2
64
= (2
128
-1)/ 2
64
. мда, пока писал понял что неправ , и ты неправ - 32бита , всё правильно.
-
m16_home
(09.12.2015 22:25
)