title: Java syntax >>, &, ? and :
body: <p>I don't understand what the >>, &amp;, ? and : mean in this program:</p>
  
  <pre><code>case MotionEvent.ACTION_POINTER_UP: {
          // Extract the index of the pointer that left the touch sensor
          final int pointerIndex = (action &amp; MotionEvent.ACTION_POINTER_INDEX_MASK) 
                  &gt;&gt; MotionEvent.ACTION_POINTER_INDEX_SHIFT;
          final int pointerId = ev.getPointerId(pointerIndex);
          if (pointerId == mActivePointerId) {
              // This was our active pointer going up. Choose a new
              // active pointer and adjust accordingly.
              final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
              mLastTouchX = ev.getX(newPointerIndex);
              mLastTouchY = ev.getY(newPointerIndex);
              mActivePointerId = ev.getPointerId(newPointerIndex);
          }
          break;
  </code></pre>
  
  <p>Could you help me ? Google doesn't do search on non-alphanumeric characters...</p>