Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: C++: kertolasku ilman kertolaskua

water flea [30.03.2006 01:26:53]

#

Kehitin tavan laskea plus- ja kertolaskuja bittisiirrolla ja loogisilla operaattoreilla.
Tapa saattaa olla käytössä muuallakin, sillä se on niin ilmiselvä.

koodi

#include<iostream.h>
template<class c>c p(c a,c b){return a&b?p(a^b,(a&b)<<1):a^b;}
template<class c>c m(c a,c b){
	c res=0,offset=0;
	while(b){
		if(b&1)res=p(res,a<<offset);
		b>>=1;offset=p(offset,(c)1);}
	return res;
}
main()
{
	int a,b;
	cout<<"Give numbers to be multiplied:\n";
	cin>>a>>b;
	cout<<"Result is "<<m(a,b)<<".\n";
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta