MULDIV

Dec 21, 2005 4 Replies

Hi All!



надо посчитать A*B/C, все переменные 32-битные. Но не хочется иметь



64-битный промежуточный результат. Как посчитать такое в 32 битах? Можно наложить ограничение на любые аргументы в 31 бит.

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

"ñ ÄÏÂÒÙÊ, É ÜÔÏ ÅÄÉÎÓÔ×ÅÎÎÙÊ ÍÏÊ ÎÅÄÏÓÔÁÔÏË" (äÏÓÔÏÅ×ÓËÉÊ)

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

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

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

Anton.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required