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

JavaScript位移賦值

王梓涵1年前6瀏覽0評論

JavaScript中,位移賦值指的是位運算符與“=”的結(jié)合,用于同時對位運算表達式和賦值表達式進行計算和賦值操作。位移賦值常用于位運算、循環(huán)操作等場景中,可以非常方便地實現(xiàn)位移、位取反和位賦值等功能。下面我們來具體介紹一下JS的位移賦值。

首先,最常用的位移賦值是 "<<=" 和 ">>=",分別對應左移和右移操作。例如:

var num = 100;  // 二進制為 01100100
num <<= 2;      // 等價于 num = num << 2,即左移兩位
document.write(num);  // 結(jié)果為 400,二進制為 11001000
num >>= 3;      // 等價于 num = num >> 3,即右移三位
document.write(num);  // 結(jié)果為 50,二進制為 00110010

另一種常用的位運算符是按位與(&)、按位或(|)和按位異或(^),也可以用于位移賦值。例如:

var num = 15;  // 二進制為 00001111
num |= 8;      // 等價于 num = num | 8,即在第四位上置1
document.write(num);  // 結(jié)果為 15,二進制為 00001111
num ^= 2;      // 等價于 num = num ^ 2,即在第一位上取反
document.write(num);  // 結(jié)果為 13,二進制為 00001101

此外,還有位取反(~)操作,它可以將每個二進制位取反后再加1,常用于計算負數(shù)的補碼。用位取反來實現(xiàn)數(shù)值的取反操作也很方便。例如:

var num = 100;  // 二進制為 01100100
var neg_num = ~num + 1;  // ~num 即為補碼,加1變?yōu)樵钾摂?shù)
document.write(neg_num);  // 結(jié)果為 -100

需要注意的是,由于JS中使用的是32位表示整數(shù)的補碼形式,因此需要對負數(shù)進行偏移,以避免出現(xiàn)意外結(jié)果。例如:

var neg_num = -8;
var pos_num = neg_num >>> 0;  // 先進行無符號右移操作,將負數(shù)轉(zhuǎn)為正數(shù)
document.write(pos_num);  // 最終結(jié)果為 4294967288,即 2^32 - 8

在循環(huán)操作中,位移賦值也能夠大顯身手。例如:

var i = 10;
while (i--) {  // 等價于 i = i - 1
document.write(i + " ");
}
// 輸出結(jié)果為 9 8 7 6 5 4 3 2 1 0
var num = 100;
while (num >>= 1) {  // 等價于 num = num >> 1
document.write(num + " ");
}
// 輸出結(jié)果為 50 25 12 6 3 1

總之,JS的位移賦值非常方便實用,在位運算、循環(huán)操作、位取反和位賦值等方面都能夠派上大用場。需要注意的是,位移賦值也有一些需要注意的細節(jié)和特殊情況,要特別小心。