Question: I need help understanding what these two blocks of codes are doing. Please explain as detailed as possible. /* * bitParity - returns 1 if
I need help understanding what these two blocks of codes are doing. Please explain as detailed as possible.
/* * bitParity - returns 1 if x contains an odd number of 0's * Examples: bitParity(5) = 0, bitParity(7) = 1 * Legal ops: ! ~ & ^ | + << >> * Max ops: 20 * Rating: 4 */ int bitParity(int x) { x = x ^ (x >> 16); x = x ^ (x >> 8); x = x ^ (x >> 4); x = x ^ (x >> 2); x = x ^ (x >> 1); return x = x & 1; }
********************************************************************************************
/* * conditional - same as x ? y : z * Example: conditional(2,4,5) = 4 * Legal ops: ! ~ & ^ | + << >> * Max ops: 16 * Rating: 4 */ int conditional(int x, int y, int z) { int mask = !x; mask = mask + ~0; return (mask & y) | (~mask & z);
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
