2008年12月1日

位元計算器

數值計算器 | 位元計算器 | 比較計算器 | 邏輯計算器 | 優先權

javascript 的位元計算器列於下表中:

符號&|^~<<>>>>>
意義ANDORXORNOT左移右移0右移

位元計算器還可以與等號相結合。

符號&=|=^=<<=>>=>>>=
意義AND設OR設XOR設LS設RS設URS設
  1. &:AND計算器將兩個數值的等高位元作 AND 計算,AND 的布林表如下:

    ABA & B
    000
    010
    100
    111
    • 程式用法:

      <script type='text/javascript'>
      a=0x59;
      document.write( a & 0xf ); 
      </script>

    • 執行結果:

      9

  2. |:OR計算器將兩個數值的等高位元作 OR 計算,OR 的布林表如下:

    ABA | B
    000
    011
    101
    111
    • 程式用法:

      <script type='text/javascript'>
      a=0x51;
      document.write( a | 0x7 ); 
      </script>

    • 執行結果:

      87

  3. ^:XOR計算器將兩個數值的等高位元作 XOR 計算,XOR 的布林表如下:

    ABA ^ B
    000
    011
    101
    110
    • 程式用法:

      <script type='text/javascript'>
      a=0x59;
      document.write( a ^ 0xf ); 
      </script>

    • 執行結果:

      86

  4. ~:NOT計算器將數值的位元作 NOT 計算,NOT 的布林表如下:

    A~A
    01
    10
    • 程式用法:

      <script type='text/javascript'>
      a=0xf;
      document.write( ~a ); 
      </script>

    • 執行結果:

      -16

  5. <<:左移計算器將數值的位元左移(left shift)。例如一個數值的二進位值,簡短的表示為 0011001,每一個位元的值左移一個位元會變成 0110010;右邊空出的位元會補 0。

    • 程式用法:

      <script type='text/javascript'>
      a=-0x3;
      document.write( a<<2 ); 
      </script>

    • 執行結果:

      -12

  6. >>:右移計算器將數值的位元右移(right shift)。右移計算器會保留原數值的正負號。

    • 程式用法:

      <script type='text/javascript'>
      a=-0xC;
      document.write( a>>2 ); 
      </script>

    • 執行結果:

      -3

  7. >>>:補0右移計算器將數值的位元右移(unsigned right shift)。補0右移計算器作右移時,會將左邊空出來的位元補上 0。

    • 程式用法:

      <script type='text/javascript'>
      a=-0xC;
      document.write( a>>>2 ); 
      </script>

    • 執行結果:

      1073741821

  8. &= , |= , ^= , <<= , >>=, >>>=:以 &= 計算器為例, A&=B 同義於 A=A&B。其它以此類推。

    • 程式用法:

      <script type='text/javascript'>
      a=0x3;
      a<<=2;
      document.write( a ); 
      </script>

    • 執行結果:

      12


©2008-2009 by ant2legs, All Rights Reserved. ant2legs 擁有其製作的文章,圖片與程式的著作權,所有權利保留。