448,672 Members | 1,628 Online
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
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 mj********@yahoo.co.in wrote: How can we perfom multiplication programatically without using + or * operator. Can any one help out in this one. #include 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 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 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 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 Richard Bos wrote: mj********@yahoo.co.in wrote: How can we perfom multiplication programatically without using + or * operator. #include 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 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. 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 +". S. May 29 '06 #12

### This discussion thread is closed

Replies have been disabled for this discussion.