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?

Was it helpful?

Solution

You may try like this for 32 bit int:-

(x >> 31) | (((~x + 1) >> 31) & 1)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top