Question

Here's the question

  • sign - return 1 if positive, 0 if zero, and -1 if negative
  • Legal ops: ! ~ & ^ | + << >>
  • Max ops: 10
  • Rating: 2

I thought of shifting to the right by 31 to grab the sign bit but can't 0 be positive AND negative technically?

Était-ce utile?

La solution

You may try like this for 32 bit int:-

(x >> 31) | (((~x + 1) >> 31) & 1)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top