JavaScript中的位操作符是一組非常重要的運(yùn)算符,可以用于對二進(jìn)制位進(jìn)行操作。位操作符主要有六種,包括按位與(&)、按位或(|)、按位異或(^)、按位非(~)、左移(<<)和右移(>>),下面我們來詳細(xì)介紹一下這六種運(yùn)算符。
首先來介紹按位與(&)運(yùn)算符。按位與運(yùn)算符的計(jì)算規(guī)則是將兩個(gè)數(shù)的二進(jìn)制的每一位進(jìn)行比較,當(dāng)兩個(gè)數(shù)的同一二進(jìn)制位上都是1時(shí),結(jié)果為1,其余情況都是0。下面是一個(gè)例子:
var a = 5 & 3; console.log(a); // 1
在這個(gè)例子中,5的二進(jìn)制為101,3的二進(jìn)制為011,進(jìn)行按位與運(yùn)算之后得到結(jié)果為001,即1。
接下來介紹按位或(|)運(yùn)算符。按位或運(yùn)算符的計(jì)算規(guī)則是將兩個(gè)數(shù)的二進(jìn)制的每一位進(jìn)行比較,當(dāng)兩個(gè)數(shù)的同一二進(jìn)制位上只要有一個(gè)1時(shí),結(jié)果為1,其余情況都是0。下面是一個(gè)例子:
var a = 5 | 3; console.log(a); // 7
在這個(gè)例子中,5的二進(jìn)制為101,3的二進(jìn)制為011,進(jìn)行按位或運(yùn)算之后得到結(jié)果為111,即7。
接下來介紹按位異或(^)運(yùn)算符。按位異或運(yùn)算符的計(jì)算規(guī)則是將兩個(gè)數(shù)的二進(jìn)制的每一位進(jìn)行比較,當(dāng)兩個(gè)數(shù)的同一二進(jìn)制位上只有一個(gè)1時(shí),結(jié)果為1,其余情況都是0。下面是一個(gè)例子:
var a = 5 ^ 3; console.log(a); // 6
在這個(gè)例子中,5的二進(jìn)制為101,3的二進(jìn)制為011,進(jìn)行按位異或運(yùn)算之后得到結(jié)果為110,即6。
接下來介紹按位非(~)運(yùn)算符。按位非運(yùn)算符的計(jì)算規(guī)則是將一個(gè)數(shù)的二進(jìn)制每一位進(jìn)行取反操作,即0變?yōu)?,1變?yōu)?。下面是一個(gè)例子:
var a = ~5; console.log(a); // -6
在這個(gè)例子中,5的二進(jìn)制為101,進(jìn)行按位非運(yùn)算之后得到結(jié)果為010,即-6。需要注意的是,JavaScript中的位運(yùn)算是以有符號32位整數(shù)進(jìn)行的,因此結(jié)果為-6。
接下來介紹左移(<<)運(yùn)算符。左移運(yùn)算符的計(jì)算規(guī)則是將一個(gè)數(shù)的二進(jìn)制向左移動(dòng)指定的位數(shù),高位移出的部分丟棄,低位補(bǔ)0。下面是一個(gè)例子:
var a = 5<< 1; console.log(a); // 10
在這個(gè)例子中,5的二進(jìn)制為101,進(jìn)行左移運(yùn)算之后得到結(jié)果為1010,即10。
最后來介紹右移(>>)運(yùn)算符。右移運(yùn)算符的計(jì)算規(guī)則是將一個(gè)數(shù)的二進(jìn)制向右移動(dòng)指定的位數(shù),低位移出的部分丟棄,高位補(bǔ)符號位的值。下面是一個(gè)例子:
var a = 5 >>1; console.log(a); // 2
在這個(gè)例子中,5的二進(jìn)制為101,進(jìn)行右移運(yùn)算之后得到結(jié)果為10,即2。
以上就是JavaScript中的位操作符的介紹,位操作符在編寫一些高效的算法和處理有關(guān)位的數(shù)據(jù)時(shí)非常實(shí)用。