javascript 的位元計算器列於下表中:
符號 | & | | | ^ | ~ | << | >> | >>> |
---|---|---|---|---|---|---|---|
意義 | AND | OR | XOR | NOT | 左移 | 右移 | 0右移 |
位元計算器還可以與等號相結合。
符號 | &= | |= | ^= | <<= | >>= | >>>= |
---|---|---|---|---|---|---|
意義 | AND設 | OR設 | XOR設 | LS設 | RS設 | URS設 |
- &:AND計算器將兩個數值的等高位元作 AND 計算,AND 的布林表如下:
A B A & B 0 0 0 0 1 0 1 0 0 1 1 1 - 程式用法:
<script type='text/javascript'>
a=0x59;
document.write( a & 0xf );
</script> - 執行結果:
9
- 程式用法:
- |:OR計算器將兩個數值的等高位元作 OR 計算,OR 的布林表如下:
A B A | B 0 0 0 0 1 1 1 0 1 1 1 1 - 程式用法:
<script type='text/javascript'>
a=0x51;
document.write( a | 0x7 );
</script> - 執行結果:
87
- 程式用法:
- ^:XOR計算器將兩個數值的等高位元作 XOR 計算,XOR 的布林表如下:
A B A ^ B 0 0 0 0 1 1 1 0 1 1 1 0 - 程式用法:
<script type='text/javascript'>
a=0x59;
document.write( a ^ 0xf );
</script> - 執行結果:
86
- 程式用法:
- ~:NOT計算器將數值的位元作 NOT 計算,NOT 的布林表如下:
A ~A 0 1 1 0 - 程式用法:
<script type='text/javascript'>
a=0xf;
document.write( ~a );
</script> - 執行結果:
-16
- 程式用法:
- <<:左移計算器將數值的位元左移(left shift)。例如一個數值的二進位值,簡短的表示為 0011001,每一個位元的值左移一個位元會變成 0110010;右邊空出的位元會補 0。
- 程式用法:
<script type='text/javascript'>
a=-0x3;
document.write( a<<2 );
</script> - 執行結果:
-12
- 程式用法:
- >>:右移計算器將數值的位元右移(right shift)。右移計算器會保留原數值的正負號。
- 程式用法:
<script type='text/javascript'>
a=-0xC;
document.write( a>>2 );
</script> - 執行結果:
-3
- 程式用法:
- >>>:補0右移計算器將數值的位元右移(unsigned right shift)。補0右移計算器作右移時,會將左邊空出來的位元補上 0。
- 程式用法:
<script type='text/javascript'>
a=-0xC;
document.write( a>>>2 );
</script> - 執行結果:
1073741821
- 程式用法:
- &= , |= , ^= , <<= , >>=, >>>=:以 &= 計算器為例, A&=B 同義於 A=A&B。其它以此類推。
- 程式用法:
<script type='text/javascript'>
a=0x3;
a<<=2;
document.write( a );
</script> - 執行結果:
12
- 程式用法: