2012-09-09 35 views
2
switch (attribute.inputType & EditorInfo.TYPE_MASK_CLASS) { 
      case EditorInfo.TYPE_CLASS_NUMBER: 
      case EditorInfo.TYPE_CLASS_DATETIME: 
      case EditorInfo.TYPE_CLASS_PHONE: 
       mCurKeyboard = mSymbolsKeyboard; 
       break; 

      case EditorInfo.TYPE_CLASS_TEXT: 
       mCurKeyboard = mQwertyKeyboard; 
     } 

這是什麼意思?android - 用'&'切換兩個值

我的測試結果是:

attribute.inputType = 17 
EditorInfo.TYPE_MASK_CLASS = 15 

切換到case EditorInfo.TYPE_CLASS_TEXT這是= 1

回答

4

在二進制...

10001 // 17 
01111 // 15 

...的&運營商表示要匹配bits,其中兩個都是1

位明智的,它看起來像這樣...

10001 // 17 
01111 // 15 
----- 
00001 // 17 & 15 

只有兩個號碼相匹配的最後bit1

2

這是位運算符(按位與),並可以在短期內是這樣描述的:

0110 & 1101 = 0100 

有關更多信息,請this教程了。

+0

不錯的教程。好分享。 – LuxuryMode