By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,672 Members | 1,628 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,672 IT Pros & Developers. It's quick & easy.

How can we perfom multiplication programatically without using + or * operator.

P: n/a

How can we perfom multiplication programatically without using + or *
operator.
Can any one help out in this one.

Jagadeesh.

May 29 '06 #1
Share this Question
Share on Google+
11 Replies


P: n/a
mj********@yahoo.co.in wrote:
How can we perfom multiplication programatically without using + or *
operator.
Can any one help out in this one.


If you conceptualise the numerical values in a binary format, then left
shifting the value by N is similar to multiplying the value by 2^N.

May 29 '06 #2

P: n/a
mj********@yahoo.co.in said:
How can we perfom multiplication programatically without using + or *
operator.


Addition can be done by using ^ (xor), & (and), and << (left shift) in the
proper way.

Multiplication is repeated addition (i.e. addition in a loop).

Alternatively, you can double and halve, if you're careful in the case of an
odd number. Note that doubling will require using addition as described
above (since you are not allowed the * operator).

That's enough of a hint - now do your own homework.

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at above domain (but drop the www, obviously)
May 29 '06 #3

P: n/a
Ico
mj********@yahoo.co.in wrote:

How can we perfom multiplication programatically without using + or *
operator.
Can any one help out in this one.


#include <stdio.h>

int mult(int a, int b)
{
int c = 0;
while(a--) c -= b;
return -c;
}

int main(void)
{
int a = 5;
int b = 6;

printf("%d x %d = %d\n", a, b, mult(a, b));

return 0;
}

--
:wq
^X^Cy^K^X^C^C^C^C
May 29 '06 #4

P: n/a
Ico said:
mj********@yahoo.co.in wrote:

How can we perfom multiplication programatically without using + or *
operator.
Can any one help out in this one.


#include <stdio.h>

int mult(int a, int b)
{
int c = 0;
while(a--) c -= b;
return -c;
}


Very funny. :-)

But I suspect his teacher is trying to get him to find out how computers do
addition and multiplication "under the hood" (because a computer does not
have the luxury of a magic wand we call '*').

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at above domain (but drop the www, obviously)
May 29 '06 #5

P: n/a

Richard Heathfield wrote:
Ico said:
mj********@yahoo.co.in wrote:

How can we perfom multiplication programatically without using + or *
operator.
Can any one help out in this one.


#include <stdio.h>

int mult(int a, int b)
{
int c = 0;
while(a--) c -= b;
return -c;
}


Very funny. :-)

But I suspect his teacher is trying to get him to find out how computers do
addition and multiplication "under the hood" (because a computer does not
have the luxury of a magic wand we call '*').

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at above domain (but drop the www, obviously)


Hehehehehehe!

Totally irrelevent but I thought your magic wand comment was funny :-)

May 29 '06 #6

P: n/a
newbie wrote:
Richard Heathfield wrote:

.... snip ...
But I suspect his teacher is trying to get him to find out how computers do
addition and multiplication "under the hood" (because a computer does not
have the luxury of a magic wand we call '*').


Hehehehehehe!

Totally irrelevent but I thought your magic wand comment was funny :-)


Have you been exposing yourself to nitrous oxide? ;)

May 29 '06 #7

P: n/a
mj********@yahoo.co.in wrote:
How can we perfom multiplication programatically without using + or *
operator.


#include <stdio.h>

int main(void)
{
double m1=4.0, m2=5.0;

printf("%f times %f equals %f.\n", m1, m2, m1/(1.0/m2));

return 0;
}

HTH; HAND.

Richard
May 29 '06 #8

P: n/a
Ico
Richard Bos <rl*@hoekstra-uitgeverij.nl> wrote:
mj********@yahoo.co.in wrote:
How can we perfom multiplication programatically without using + or *
operator.


#include <stdio.h>

int main(void)
{
double m1=4.0, m2=5.0;

printf("%f times %f equals %f.\n", m1, m2, m1/(1.0/m2));

return 0;
}


Taking stupid assignments literally, that must be some kind of dutch
humor :)

--
:wq
^X^Cy^K^X^C^C^C^C
May 29 '06 #9

P: n/a
mj********@yahoo.co.in wrote:
#
#
#
# How can we perfom multiplication programatically without using + or *
# operator.
# Can any one help out in this one.

Any good text on computation theory should include the multiplication
of radix one integers.

--
SM Ryan http://www.rawbw.com/~wyrmwif/
Mention something out of a Charleton Heston movie, and suddenly
everybody's a theology scholar.
May 29 '06 #10

P: n/a
posted:

How can we perfom multiplication programatically without using + or *
operator.
Can any one help out in this one.

Jagadeesh.

Seems like you need a book on digital electronics and boolean logic.
-Tomás

May 29 '06 #11

P: n/a
Richard Heathfield wrote:
Ico said:
mj********@yahoo.co.in wrote:
How can we perfom multiplication programatically without using + or *
operator.
Can any one help out in this one.

#include <stdio.h>

int mult(int a, int b)
{
int c = 0;
while(a--) c -= b;
return -c;
}


Very funny. :-)

But I suspect his teacher is trying to get him to find out how computers do
addition and multiplication "under the hood" (because a computer does not
have the luxury of a magic wand we call '*').

For "computer", read "lowest level of computing hardware". That level
usually doesn't have multiplication as a primitive operation. Go any higher
(say, the processor as a whole) and you'll find that most computers do have it.

<musing>
Doing this in C is a silly exercise, by the way, because the assumption that
C's set of primitive operations (minus + and *) closely resembles that of
the hardware is less and less commonly valid (or relevant). This line of
thinking, incidentally, is also what makes people invest in clever bit
tricks when they start prematurely optimizing.

I'd think a good exposition in microcode would be more relevant. Either that
or, if you really think it's relevant that people find a general
multiplication algorithm on their own (why?), a very basic set of operators
and statements with which to do it, but not just "go do it in C without * or +".
</musing>

S.
May 29 '06 #12

This discussion thread is closed

Replies have been disabled for this discussion.