位元運算子
- 詳細內容
- 分類:Javascript
- 發佈:2012-12-18, 週二 22:50
- 點擊數:3695
位元運算子是用來做位元運算的,以bit為單位的運算。
javascript位元運算子其實不常被用到,主要的用途是用少量的記憶體(1個]bit),
來記憶一個狀態是否發生。這種應用在低階語言很常被使用,不過在javascript ,
真的很少看到人這樣用,所以這一章大家隨便看看 我隨便寫寫=="...
javascript的位元運算子:
& ==> 位元AND運算,兩個運算子都為1時,傳回1。
| ==> 位元OR運算,只要有一個運算子為1就傳回1。
^ ==> 位元XOR運算,兩個運算子相同時傳回0,兩個運算子不相同時傳回1。
~ ==> 位元NOT運算,傳回相反值。
<< ==>左移運算元。
>> ==>帶符號右移。
>>> ==>補0右移。
& (AND) 運算的例子:
alert(0&0); // ==>傳回0
alert(0&1); // ==>傳回0
alert(1&0); // ==>傳回0
alert(1&1); // ==>傳回1
| (OR) 運算的例子:
alert(0|0); // ==>傳回0
alert(0|1); // ==>傳回1
alert(1|0); // ==>傳回1
alert(1|1); // ==>傳回1
^(XOR) 運算的例子:
alert(0^0); // ==>傳回0
alert(0^1); // ==>傳回1
alert(1^0); // ==>傳回1
alert(1^1); // ==>傳回0
~(NOT) 運算的例子:
alert(~0); // ==>傳回-1
alert(~1); // ==>傳回-2
alert(~255); // ==>傳回-256
位元運算很常被用在旗標的判斷,通常是用某個位元代表某個狀態,然後再用旗標檢查位元狀態。
例:
var flaga=1; // 0001
var flagb=2; // 0010
var flagc=4; // 0100
var flagd=8; //1000
var x=123;
if (x&flaga){} // ==>檢查x 20 的那個位元是否為0。
if (x&flagb){} // ==>檢查x 21 的那個位元是否為0。
if (x&flagc){} // ==>檢查x 22 的那個位元是否為0。
if (x&flagd){} // ==>檢查x 23 的那個位元是否為0。
x=x|flaga; // ==>將x 20 的那個位元設為1,其餘不變。
x=x|flagb; // ==>將x 21 的那個位元設為1,其餘不變。
x=x|flagc; // ==>將x 22 的那個位元設為1,其餘不變。
x=x|flagd; // ==>將x 23 的那個位元設為1,其餘不變。
如果你覺得寫的還不錯,請給我一個讚喔!!
按個讚!~支持本站!~
你可能會有興趣的文章: