Question: Please explain this bit-wise operation line by line * * M /* * addOK Determine if can compute x+y without overflow Example: addok (0x80000000,0x80000000) 0,

Please explain this bit-wise operation line by line

Please explain this bit-wise operation line by line * * M /*

* * M /* * addOK Determine if can compute x+y without overflow Example: addok (0x80000000,0x80000000) 0, addoK (0x80000000,0x70000000) 1, Legal ops: ! &^| + > Max ops: 20 Rating: 3 */ int addOK(int x, int y) { int n = x + y; return !(((x^n)&(y^n))>>31); * } /* * * * is Greater - if x > y then return 1, else return 0 Example: isGreater(4,5) = 0, isGreater(5,4) = 1 Legal ops: ! ~&^| + > Max ops: 24 Rating: 3 */ int isGreater(int x, int y) { int n = x^y; return (((y & ~x) | ~[(n) | (x + ~y))) >> 31) & 1; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!