<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
    主站蜘蛛池模板: 亚洲国产美女精品久久| 久久精品国产亚洲网站| 光棍天堂免费手机观看在线观看| 免费看香港一级毛片| 亚洲av无码乱码在线观看野外 | 亚洲色精品VR一区区三区| 日本免费网站视频www区| 91情国产l精品国产亚洲区| 91福利视频免费| 亚洲六月丁香六月婷婷色伊人| 国产四虎免费精品视频| 亚洲天堂2017无码中文| 免费观看的av毛片的网站| 国产成人亚洲综合在线| 一区二区三区四区免费视频| 免费看www视频| 国产亚洲男人的天堂在线观看 | 免费看国产成年无码AV片| 亚洲欧洲精品成人久久曰| 免费观看午夜在线欧差毛片 | 久久精品国产亚洲av麻豆蜜芽| 国产黄在线观看免费观看不卡| 亚洲精品成人久久久| 成在人线av无码免费高潮喷水| 亚洲电影国产一区| AA免费观看的1000部电影| 亚洲精品宾馆在线精品酒店| 四虎影视在线永久免费看黄| 中文字幕在线免费观看视频| 4480yy私人影院亚洲| 精品国产免费观看| 国产伦精品一区二区免费| 18亚洲男同志videos网站| 成全视频在线观看免费高清动漫视频下载 | 4444www免费看| 亚洲国产精品无码久久| 国产成人99久久亚洲综合精品| 精品无码人妻一区二区免费蜜桃| 中文字幕亚洲综合久久综合| 亚洲日韩精品无码专区网站| 在线免费中文字幕|