成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

常用的JavaScript位操作(Bitwise)

MoAir / 3049人閱讀

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

位操作

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

Bitwise AND 按位與

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

Bitwise OR 按位或

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

Bitwise XOR 按位異或

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

Bitwise NOT 按位取反

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

顏色交替

32位數(shù)字的二進(jìn)制底層表示,偶數(shù)的最低位是0,奇數(shù)的最低位是1。如果此數(shù)為偶數(shù),和1按位與的結(jié)果是0;如果此數(shù)為奇數(shù),和1按位與的結(jié)果是1??梢允褂迷摲椒▽?shí)現(xiàn)顏色交替,效率可能會(huì)比純數(shù)學(xué)運(yùn)算(如,取模)快50%。

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

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

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

const options  = OPTION_A | OPTION_B;

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/107991.html

相關(guān)文章

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

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

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

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

    yhaolpz 評(píng)論0 收藏0
  • 由left-pad扯到JS中運(yùn)算

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

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

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

    LeviDing 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<