math with bitwise operators
JavaScript, 124 119

a=(x,y)=&gt;y?a(x^y,(x&amp;y)&lt;&lt;1):x
s=(x,y)=&gt;a(x,a(1,~y))
m=(x,y)=&gt;x?a(y,m(s(x,1),y)):0
d=(x,y)=&gt;(x=s(x,y))&gt;&gt;31?0:a(1,d(x,y))


Addition and Subtraction work for any signed numbers, multiplication and division only for unsigned (this hasn't been specified).

The input is assumed to be 32 bit.

I've been very strict and not even used comparison operators, except testing for equality with zero. It could probably be written a bit shorter otherwise.