我不明白什么是>>,&,?and :此程序中的mean:
case MotionEvent.ACTION_POINTER_UP: {
// Extract the index of the pointer that left the touch sensor
final int pointerIndex = (action & MotionEvent.ACTION_POINTER_INDEX_MASK)
>> 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;你能帮我吗?谷歌不会搜索非字母数字字符...
发布于 2011-12-26 23:00:12
>>&: - ?
发布于 2011-12-26 23:02:23
让我们一次只看一个。
final int pointerIndex = (action & MotionEvent.ACTION_POINTER_INDEX_MASK)
>> MotionEvent.ACTION_POINTER_INDEX_SHIFT;这些是按位运算符。&将action和MotionEvent.ACTION_POINTER_INDEX_MASK中的位ANDing在一起。
>>正在改变这一结果。
Binyamin在bitwise operators上为你推荐了一个很好的页面。
final int newPointerIndex = pointerIndex == 0 ? 1 : 0;这是一个三元运算符。它本质上是说“如果pointerIndex等于0,则返回1,否则返回0。
发布于 2011-12-26 23:02:19
>>是移位运算符,它将位模式向右移位
(你可以在谷歌上搜索移位操作符)
&是按位and运算符(搜索按位运算符)
? :是if - then -else [if cond] ? [then] : [else]的缩写
参考http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
https://stackoverflow.com/questions/8636818
复制相似问题