MULDIV

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Hi All!

надо посчитать A*B/C, все переменные 32-битные. Но не хочется иметь
64-битный промежуточный результат. Как посчитать такое в 32 битах?
Можно наложить ограничение на любые аргументы в 31 бит.

MULDIV
Wed Dec 21 2005 22:25, Anton V. Fedorov wrote to All:


 AVF> надо посчитать A*B/C, все переменные 32-битные. Hо не хочется иметь
 AVF> 64-битный промежуточный результат. Как посчитать такое в 32 битах?
 AVF> Можно наложить ограничение на любые аргументы в 31 бит.

 Приведи переменные к нормализованному виду, т.е. к мантиссе и порядку.
 Тогда промежуточные результаты будут с 32-битной мантиссой, а порядки
 сложишь после вычисления всего выражения.

 VLV

 

 "Я добрый, и это единственный мой недостаток"  (Достоевский)


Re: MULDIV

Quoted text here. Click to load it

Точность терять мне нельзя, а это приведет к потерям.

Re: MULDIV
Hello, Anton!

21 Дек 05 23:25, Anton V. Fedorov -> All:

 AF> надо посчитать A*B/C, все переменные 32-битные. Hо не хочется иметь
 AF> 64-битный промежуточный результат. Как посчитать такое в 32 битах?
 AF> Можно наложить ограничение на любые аргументы в 31 бит.

Должны быть еще какие-то ограничения на С.
Если даже А и В 31-битные, то А*В/С - 62 бит (при С32%'h1).

WBR, Svjatoslav

Re: MULDIV

Quoted text here. Click to load it

Ну конечно, А*В/С <= 32 бита.

Anton.

Site Timeline