& is bitwise AND.

Why do you think it doesn't apply in this situation?

? is the ternary operator (or tertiary) - if the condition to the left of the ? evaluatues true, the value of the expression to the left of the colon is returned, else the value of the expression to the right of the colon is returned.

return ((nunchuck_buf[5] >> 1) & 1) ? 0 : 1

says "take the sixth element of nunchuck_buf and shift it right one place.

Mask off the least-significant bit and test the resulting value.

If the bit is 1, return 0, otherwise return 1"