<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    七段

    無論怎樣,請讓我先感謝一下國家。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      35 Posts :: 2 Stories :: 7 Comments :: 0 Trackbacks
    java bitwise operator:
    ~ The unary bitwise complement operator "~" inverts a bit pattern.
    <<The signed left shift
    >>The signed right shift
    >>>the unsigned right shift

    & The bitwise & operator performs a bitwise AND operation.

    ^ The bitwise ^ operator performs a bitwise exclusive OR operation.

    | The bitwise | operator performs a bitwise inclusive OR operation.



    Usage:
    1,
    • ^ can swap two variables without using an intermediate, temporary variable which is useful if you are short on available RAM or want that sliver of extra speed.

      Usually, when not using ^, you will do:

      temp = a;

      a = b;

      b = temp;

      Using ^, no "temp" is needed:

      a ^= b;

      b ^= a;

      a ^= b;

      This will swap "a" and "b" integers. Both must be integers.

    2,
    an example of using an integer to maintain state flags (common usage):
    // These are my masks

    private static final int MASK_DID_HOMEWORK  = 0x0001;

    private static final int MASK_ATE_DINNER    = 0x0002;

    private static final int MASK_SLEPT_WELL    = 0x0004;



    // This is my current state

    private int m_nCurState;

    To set my state, I use the bitwise OR operator:

    // Set state for'ate dinner' and 'slept well' to 'on'

    m_nCurState
    = m_nCurState | (MASK_ATE_DINNER | MASK_SLEPT_WELL);

    Notice how I 'or' my current state in with the states that I want to turn 'on'. Who knows what my current state is and I don't want to blow it away.

    To unset my state, I use the bitwise AND operator with the complement operator:

    // Turn off the 'ate dinner' flag

    m_nCurState
    = (m_nCurState & ~MASK_ATE_DINNER);

    To check my current state, I use the AND operator:

    // Check if I did my homework

    if (0 != (m_nCurState & MASK_DID_HOMEWORK)) {

       
    // yep

    } else {

       
    // nope...

    }

    Why do I think this is interesting? Say I'm designing an interface that sets my state. I could write a method that accepts three booleans:

    void setState( boolean bDidHomework, boolean bAteDinner, boolean bSleptWell);

    Or, I could use a single number to represent all three states and pass a single value:

    void setState( int nStateBits);

    If you choose the second pattern you'll be very happy when decide to add another state - you won't have to break existing impls of your interface.


    posted on 2010-04-13 14:39 sevenduan 閱讀(413) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 国产成人精品久久免费动漫 | 亚洲va久久久噜噜噜久久男同| 日韩国产欧美亚洲v片| 国产成人A在线观看视频免费 | 亚洲av激情无码专区在线播放| 大地资源在线资源免费观看| 亚洲日韩精品A∨片无码| 国产一级a毛一级a看免费视频| 亚洲人成伊人成综合网久久久 | 青青青免费国产在线视频小草| 亚洲影视一区二区| 成年女人毛片免费播放人| 亚洲啪AV永久无码精品放毛片| 免费国产不卡午夜福在线 | 亚洲人成影院午夜网站| 黄页网站免费在线观看| 久久人午夜亚洲精品无码区| 亚洲国产精品丝袜在线观看| 国产一精品一AV一免费| 亚洲成AV人综合在线观看| 卡一卡二卡三在线入口免费| 免费国产va在线观看| 精品亚洲永久免费精品| 亚洲成人免费在线观看| 亚洲人成网站在线在线观看| 亚洲国产婷婷综合在线精品| 外国成人网在线观看免费视频| 亚洲日韩中文字幕| 免费在线视频一区| 中文字幕在线免费观看| 亚洲成aⅴ人片久青草影院按摩 | 亚洲色图在线播放| 啦啦啦www免费视频| 精选影视免费在线 | 亚洲乱码中文论理电影| 亚洲 另类 无码 在线| 99re6在线视频精品免费下载| 中文字幕无码亚洲欧洲日韩| 亚洲精品自在在线观看| 毛片大全免费观看| 国产免费AV片在线观看|