JavaScript位運(yùn)算符怎么運(yùn)算的

小億
104
2023-10-10 22:37:21

JavaScript中的位運(yùn)算符用于對(duì)數(shù)字的二進(jìn)制表示進(jìn)行操作。下面是常見(jiàn)的位運(yùn)算符及其運(yùn)算方式:

  1. 按位與(&):對(duì)兩個(gè)數(shù)字的每個(gè)位執(zhí)行邏輯與操作,只有兩個(gè)位都為1時(shí),結(jié)果才為1。

例如:10 & 6 的結(jié)果為 2,因?yàn)?0的二進(jìn)制表示為 1010,6的二進(jìn)制表示為 0110,按位與操作后得到 0010。

  1. 按位或(|):對(duì)兩個(gè)數(shù)字的每個(gè)位執(zhí)行邏輯或操作,只要兩個(gè)位中至少有一個(gè)為1,結(jié)果就為1。

例如:10 | 6 的結(jié)果為 14,因?yàn)?0的二進(jìn)制表示為 1010,6的二進(jìn)制表示為 0110,按位或操作后得到 1110。

  1. 按位異或(^):對(duì)兩個(gè)數(shù)字的每個(gè)位執(zhí)行邏輯異或操作,兩個(gè)位相同為0,不同為1。

例如:10 ^ 6 的結(jié)果為 12,因?yàn)?0的二進(jìn)制表示為 1010,6的二進(jìn)制表示為 0110,按位異或操作后得到 1100。

  1. 按位非(~):對(duì)一個(gè)數(shù)字的每個(gè)位執(zhí)行邏輯非操作,將每個(gè)位取反。

例如:~10 的結(jié)果為 -11,因?yàn)?0的二進(jìn)制表示為 0000 1010,按位非操作后得到 1111 0101,即 -11。

  1. 左移(<<):將一個(gè)數(shù)字的二進(jìn)制表示向左移動(dòng)指定的位數(shù),右側(cè)用0填充。

例如:10 << 2 的結(jié)果為 40,因?yàn)?0的二進(jìn)制表示為 0000 1010,左移2位后得到 0010 1000,即 40。

  1. 右移(>>):將一個(gè)數(shù)字的二進(jìn)制表示向右移動(dòng)指定的位數(shù),左側(cè)用0或1填充(取決于數(shù)字的符號(hào))。

例如:10 >> 2 的結(jié)果為 2,因?yàn)?0的二進(jìn)制表示為 0000 1010,右移2位后得到 0000 0010,即 2。

  1. 無(wú)符號(hào)右移(>>>):將一個(gè)數(shù)字的二進(jìn)制表示向右移動(dòng)指定的位數(shù),左側(cè)用0填充。

例如:10 >>> 2 的結(jié)果為 2,因?yàn)?0的二進(jìn)制表示為 0000 1010,無(wú)符號(hào)右移2位后得到 0000 0010,即 2。

注意:

  • 位運(yùn)算符只能應(yīng)用于整數(shù),如果應(yīng)用于非整數(shù),會(huì)將其轉(zhuǎn)換為整數(shù)。

  • 位運(yùn)算符會(huì)將數(shù)字轉(zhuǎn)換為32位有符號(hào)整數(shù)形式。

0