Divide Without Operators

arpan's Avatar, Join Date: Aug 2006
Newbie Member
I am a 1st year Electronics & Comm Engineering Student
i've been programming in c for 2 years....

I have been told by my senior to

write a c code for Dividing two integers

but

without using any operators ie (+,-,*,/)

get the Quotient and Remainder

One can use math.h .

I cannot figure out this
plz help me
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Use the left shift << or Right shift >> operators to achieve the operation.

Shift left is equivalent to a multiplication by 2.
Similarly a shift right is equal to division by 2
0
arpan's Avatar, Join Date: Aug 2006
Newbie Member
Can you give a small code for using left shift << or Right shift >> operators for dividing with any integer
0
kingo's Avatar
Go4Expert Member
suppose if i give my declarations like
it a=34,b=2,c;

c=a<<b;


wht wil be the value of c?????
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Binary of 34 is 100010
You are asking it for 2 left shift
So the final no would become
10001000 which is 136.

So C will have 136.
0
kingo's Avatar
Go4Expert Member
Actually i got the logic in a crude manner if b=1 it is 34*2
b=2 it is 34*4
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Yes thats true because when you shift bit by one place actually its equivalent to multiplication by 2.