国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

常用的JavaScript位操作(Bitwise)

MoAir / 2974人閱讀

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

位操作

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

Bitwise AND 按位與

兩個操作數的對應位都是1時,則在該位置返回1。

Bitwise OR 按位或

兩個操作數的對應位只要一個為1時,則在該位返回1。

Bitwise XOR 按位異或

兩個操作數的對應位只有一個為1,則在該位返回1。

Bitwise NOT 按位取反

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

顏色交替

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

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

位掩碼用于處理同時存在多個布爾選項的情形。使用單個數字的每一位來判定選項是否成立,從而有效地把數字轉換為由布爾值標記組成的數組。掩碼中的每個選項的值都等于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
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/107991.html

相關文章

  • JavaScript 轉換數字為整數方法

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

    YanceyOfficial 評論0 收藏0
  • 復習js 2

    摘要:復習表達式和運算符運算符擁有如下類型的運算符。例如十進制數字用二進制表示為,位運算符就是在這個二進制表示上執行運算,但是返回結果是標準的數值。因此,用于布爾值時,當任何一個操作數為則返回如果操作數都是則返回。 復習js day2 表達式和運算符 運算符 JavaScript 擁有如下類型的運算符。本節描述了運算符和運算符的優先級。 賦值運算符(Assignment operators...

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

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

    LeoHsiun 評論0 收藏0
  • websocket 二進制數據傳輸基礎準備工作

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

    LeviDing 評論0 收藏0

發表評論

0條評論

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