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

M

mjdeesh_hi

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

Jagadeesh.
 
S

santosh

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.
 
R

Richard Heathfield

(e-mail address removed) 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.
 
I

Ico

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;
}
 
R

Richard Heathfield

Ico said:
#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 '*').
 
N

newbie

Richard said:
Ico said:


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 :)
 
R

Richard Bos

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
 
I

Ico

Richard Bos said:
#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 :)
 
S

SM Ryan

(e-mail address removed) 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.
 
T

Tomás

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
 
S

Skarmander

Richard said:
Ico said:


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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,586
Members
45,088
Latest member
JeremyMedl

Latest Threads

Top