2's complement Vermenigvuldigen met een constante

D

davyzhu

Guest
Hi all,

Ik heb 2's complement cijfers variëren van negtive naar positief.Hoe te vermenigvuldigen met een constante?

Nu heb ik weer 2's aanvulling op de gesloten-cijferige formaat en doen shift-addition/multiplication.

En er is een groot probleem verward me een lange tijd:
Is er een methode zijn de verdiensten uit ondertekende cijfers (makkelijk te vermenigvuldigen) en 2's complement (eenvoudig toe te voegen)?

Eventuele suggesties worden gewaardeerd!
Met vriendelijke groet,
Davy

 
U moet algoritme stand of Modified Booth algoritme.Zie de volgende links:
1) http://jingwei.eng.hmc.edu/ ~ rwang/e85/lectures/arithmetic_html/node10.html
2) userpages.umbc.edu / ~ padmanab / fall03/cmpe415/BoothAlgo.pdf

RGDS
KH

 
Je moet je realiseren dat je moet gebruik maken van een juiste gegevenstype voor het resultaat van de vermenigvuldiging, zodat het er kan FIT:

Bijvoorbeeld, je hebt om nummers die passen in "signed char" type vermenigvuldigen (dat wil zeggen in 1 byte met bereik van <-128 tot 127>), dan is de maximale resultaat is 16256 (absolute waarde) die kunnen passen in "ondertekend int" type (2 bytes met een bereik <-32.768-32767>)
Code:eek:ndertekend int multiplier_1; / / de waarde ervan beperkt tot <-128; 127>!

ondertekend int multiplier_2; / / de waarde ervan beperkt tot <-128; 127>!

ondertekend int multiplication_result;multiplication_result = multiplier_1 * multiplier_2; / / dit zal geven correcte resultaten

/ / Multipliers voor de vermenigvuldiging van die

/ / Niet zal overschrijden <-32.768 tot 32.767>

 

Welcome to EDABoard.com

Sponsor

Back
Top