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";
}Aihe on jo aika vanha, joten et voi enää vastata siihen.