色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 位操作

陳思宇1年前6瀏覽0評論

JavaScript是一門用于網(wǎng)頁編程的動態(tài)語言,其功能十分強(qiáng)大,包括位操作,這是一項有用而且在很多場景下仍然含有重要地位的編程技巧。位操作是一種特殊的操作,它們不是像加號或減號那樣的算術(shù)操作,而是對數(shù)位進(jìn)行操作。在這篇文章中,我們將介紹一些常見的位操作,還有一些有趣的例子。

首先,讓我們看一下JavaScript中的位運算符。

&     與
|     或
^     異或
~     取反
<<     左移
>>     右移
>>>     無符號右移

這些位運算符可用于整數(shù),而在JavaScript中字符串,浮點數(shù)等都會被強(qiáng)制轉(zhuǎn)換為整數(shù)。

首先,讓我們來看一下與運算符(&)。這個運算符將比特位置相同的兩個操作數(shù)都設(shè)為1,則輸出1,否則輸出0。以下是一些示例:

5 & 3;      // 1  (0101 & 0011 = 0001)
15 & 9;     // 9  (1111 & 1001 = 1001)
25 & 30;    // 24 (11001 & 11110 = 11000)

接下來是按位或運算符(|)。這個運算符將比特位置相同的兩個操作數(shù)中只要有一個為1,則輸出1,否則輸出0。以下是一些示例:

5 | 3;       // 7  (0101 | 0011 = 0111)
15 | 9;      // 15 (1111 | 1001 = 1111)
25 | 30;     // 31 (11001 | 11110 = 11111)

接下來是異或運算符(^)。這個運算符將相同位上相同的比特設(shè)為0,不同位上不同的比特設(shè)為1。以下是一些示例:

5 ^ 3;        // 6 (0101 ^ 0011 = 0110)
15 ^ 9;       // 6 (1111 ^ 1001 = 0110)
25 ^ 30;      // 7 (11001 ^ 11110 = 00111)

接下來是按位取反運算符(~)。這個運算符將每個比特進(jìn)行取反操作(0變成1,1變成0)。以下是一些示例:

~5;           // -6 (~00101 = 11010)
~15;          // -16 (~1111 = 0000)
~25;          // -26 (~11001 = 00110)

接下來是左移運算符(<<)。這個運算符將操作數(shù)的所有比特向左移動n位,并在最右邊添加n個0。以下是一些示例:

5 << 1;    // 10 (0101 << 1 = 1010)
6 << 2;   // 24 (0110 << 2 = 11000)
2 << 3;   // 16 (0010 << 3 = 10000)

接下來是右移運算符(>>)。這個運算符將操作數(shù)的所有比特向右移動n位,并且在最左端添加n個符號位。以下是一些示例:

5 >> 1;    // 2 (0101 >> 1 = 0010)
10 >> 2;   // 2 (1010 >> 2 = 0010)
20 >> 3;   // 2 (10100 >> 3 = 00010)

最后是無符號右移運算符(>>>)。這個運算符將操作數(shù)的所有比特向右移動n位,并且在最左端添加n個0。以下是一些示例:

5 >>> 1;   // 2 (0101 >>> 1 = 0010)
10 >>> 2;  // 2 (1010 >>> 2 = 0010)
20 >>> 3;  // 2 (10100 >>> 3 = 00010)

現(xiàn)在,讓我們看一些JavaScript中使用位操作符的有趣的例子。

首先,我們將使用位移運算符來生成隨機(jī)數(shù)。例如,以下的代碼生成一個隨機(jī)數(shù):

var rand = (Math.random() * 0x100000000)>>>0;

接下來,我們將使用位運算符來計算數(shù)字的奇偶數(shù)。例如,以下代碼將返回一個數(shù)字a的奇偶校驗結(jié)果:

function evenParity(a) {
var parity = 0;
while (a) {
parity ^= a & 1;
a >>= 1;
}
return parity;
}

最后,讓我們用位運算符來解決一道有趣的數(shù)學(xué)問題 - 計算兩個數(shù)字的GCD。例如,以下代碼計算兩個數(shù)字a和b的GCD:

function GCD(a, b) {
while (b != 0) {
var t = b;
b = a % b;
a = t;
}
return a;
}

這些是位操作符在JavaScript中的使用。位操作符可能看起來有點神秘,但是它們可以成為解決實際問題的有力工具。在實際使用中,總是記得仔細(xì)閱讀位操作符的文檔,并小心處理邊緣情況,以確保您的代碼能夠正常運行。