成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

常用的JavaScript位操作(Bitwise)

MoAir / 2986人閱讀

摘要:雖然需要轉(zhuǎn)換,但這個過程與其他數(shù)學(xué)運算和布爾操作相比要快很多。位掩碼位掩碼用于處理同時存在多個布爾選項的情形。使用單個數(shù)字的每一位來判定選項是否成立,從而有效地把數(shù)字轉(zhuǎn)換為由布爾值標(biāo)記組成的數(shù)組。

位操作

JavaScript中的數(shù)字都按照IEEE-754(Institute of Electrical and Electronics Engineers)標(biāo)準(zhǔn)以64位格式存儲。在位操作中,數(shù)字被轉(zhuǎn)換為有符號32位格式。每次運算符會直接操作該32位數(shù)以得到結(jié)果。雖然需要轉(zhuǎn)換,但這個過程與JavaScript其他數(shù)學(xué)運算和布爾操作相比要快很多。

Bitwise AND 按位與

兩個操作數(shù)的對應(yīng)位都是1時,則在該位置返回1。

Bitwise OR 按位或

兩個操作數(shù)的對應(yīng)位只要一個為1時,則在該位返回1。

Bitwise XOR 按位異或

兩個操作數(shù)的對應(yīng)位只有一個為1,則在該位返回1。

Bitwise NOT 按位取反

遇0則返回1,反之亦然。

顏色交替

32位數(shù)字的二進制底層表示,偶數(shù)的最低位是0,奇數(shù)的最低位是1。如果此數(shù)為偶數(shù),和1按位與的結(jié)果是0;如果此數(shù)為奇數(shù),和1按位與的結(jié)果是1。可以使用該方法實現(xiàn)顏色交替,效率可能會比純數(shù)學(xué)運算(如,取模)快50%。

    for (let i = Things.length - 1; i >= 0; i--) {
        if(i & 1) {
            className = "oddColor";
        }else {
            className = "evenColor";
        }
    }
位掩碼

位掩碼用于處理同時存在多個布爾選項的情形。使用單個數(shù)字的每一位來判定選項是否成立,從而有效地把數(shù)字轉(zhuǎn)換為由布爾值標(biāo)記組成的數(shù)組。掩碼中的每個選項的值都等于2的冪

const OPTION_A = 1;
const OPTION_B = 2;
const OPTION_C = 4;

const options  = OPTION_A | OPTION_B;

// 選項A是否在options中
if(options & OPTION_A) {
    // code here
}
// 選項A是否在options中
if(options & OPTION_B) {
    // code here
}
// 選項A是否在options中
if(options & OPTION_C) {
    // code here
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107991.html

相關(guān)文章

  • JavaScript 轉(zhuǎn)換數(shù)字為整數(shù)方法

    摘要:另外自己寫代碼測試了下和的速度,比較結(jié)果如下位操作轉(zhuǎn)換整數(shù)的原理參考上面對于位操作的說明,點擊下面鏈接有這樣一段話中,數(shù)字存儲是雙進度位浮點數(shù)。但是位操作卻會把要操作的運算元當(dāng)做位帶符號的整數(shù)。因此進行位操作時,會自動把數(shù)字先轉(zhuǎn)換為整數(shù)。 本文將會列舉并說明JavaScript 把一個number(或者numerical的對象)轉(zhuǎn)換成一個整數(shù)相關(guān)方法。 使用parseInt parse...

    YanceyOfficial 評論0 收藏0
  • 復(fù)習(xí)js 2

    摘要:復(fù)習(xí)表達(dá)式和運算符運算符擁有如下類型的運算符。例如十進制數(shù)字用二進制表示為,位運算符就是在這個二進制表示上執(zhí)行運算,但是返回結(jié)果是標(biāo)準(zhǔn)的數(shù)值。因此,用于布爾值時,當(dāng)任何一個操作數(shù)為則返回如果操作數(shù)都是則返回。 復(fù)習(xí)js day2 表達(dá)式和運算符 運算符 JavaScript 擁有如下類型的運算符。本節(jié)描述了運算符和運算符的優(yōu)先級。 賦值運算符(Assignment operators...

    yhaolpz 評論0 收藏0
  • 由left-pad扯到JS中運算

    摘要:原碼補碼和反碼原碼一個數(shù)在計算機中是以二進制的形式存在的,其中第一位存放符號正數(shù)為負(fù)數(shù)為。中的位運算在中按位操作符會將其操作數(shù)轉(zhuǎn)成補碼形式的有符號位整數(shù)。原文鏈接由扯到中的位運算 這個話題的由來是2016年3月份的時候 NPM 社區(qū)發(fā)生了‘left-pad’事件,不久后社區(qū)就有人發(fā)布了用來補救的,也是現(xiàn)在大家能用到的 left-pad 庫。 最開始這個庫的代碼是這樣的。 module....

    LeoHsiun 評論0 收藏0
  • websocket 二進制數(shù)據(jù)傳輸基礎(chǔ)準(zhǔn)備工作

    摘要:例如,十進制數(shù),用二進制表示則為。按位操作符操作數(shù)字的二進制形式,但是返回值依然是標(biāo)準(zhǔn)的數(shù)值。不同為真相同為假二進制按位異或運算從左到右按位非為真,為假對每一項進行非操作,遇真則假,遇假則真。 二進制與十六進制 二進制用 0 1 表示 2= 10十六進制 前綴0x 用0123456789ABCDEF表示 2= 0x2二進制與十六進制的轉(zhuǎn)換十六進制的每位 等于二進制的四位 十六進制 0x...

    LeviDing 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<