回覆列表
  • 1 # 手機使用者86803631511

    ~叫“按位取反”運算,2優先順序

    ^按位異或運算子,9優先順序

    ()運算子優先順序最高

    所以先計算括號裡面的~a

    計算結果與a異或

    整個運算結果 再按位取反

    所謂按位取反就是:

    比如int型別的a=10;

    記憶體中存放的是0x0000000a->相當於0000000000000000000000001010(你自己再數一下,對於32位系統來說 int是32位的最高位是符號位)

    按位取反之後就是0xfffffff5->相當於11111111111111111111111111110101;

    最高位是符號位此數是整數的補碼(至於補碼怎麼變成我們常用的數的自己查資料吧),表示成int就是-11;

    按位異或,異或運算1^1=0,0^0=0,1^0=1,0^1=1(全部為二進位制表示)

    具體的就不演算給你看了!

    對於~(a^~a)運算結果一直是0

    a與~a每一位都相反,異或之後結果每一位都為1(相反兩數異或結果為1,參考這一行上面的第三行)

    每一位結果都取反結果每一位都為0

    即:

    0x00000000補碼錶示

    結果是0;

    解釋完畢!

  • 中秋節和大豐收的關聯?
  • 臨牌申請要多長時間?