سؤال

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?

هل كانت مفيدة؟

المحلول

You may try like this for 32 bit int:-

(x >> 31) | (((~x + 1) >> 31) & 1)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top