1. What is the integer value of the following expressions (give binary answers assuming integers are represented using 8 bits). a. ~!0 b. ~~1 c. 1|2 d. 1||2 2. Write a C expression that is true when bit 3 of an integer x is 0. 3. If x is an int, write a snippet of C code that clears bit 2 of x if bit 1 is set, and otherwise flips bit 4. No other bits of x should be changed when the snippet is completed. 4. What is the value of the ofllowing expressions assuming the 8 bit signed int x starts with the value 10111010? a. x << 4 b. x >> 4 c. x |= (1<<3) d. x ^= (0xF0) 5. How would you fix the following macro so that is does what the original author probably intended? #define PRODUCT(a,b) a*b 6. If x in an array of unsigned char's, write a macro that flips the n'th bit of x using the intel convention: byte 0 byte 1 byte 2 b7..b0 b15..b8 b23..b16 7. Define the following structure using bit fields: left_direction : b0 left_speed : b1..b3 right_direction: b4 right_speed : b5..b7