美文网首页让前端飞JavaScript笔记本
花里胡哨的位运算技巧-JavaScript

花里胡哨的位运算技巧-JavaScript

作者: AlbertZX | 来源:发表于2020-11-17 09:41 被阅读0次

大佬之所以会被称之为大佬,是因为他们有些操作真的够骚。大佬的代码里面往往充满了各种“骚操作”,不加注释绝对看不懂的那种。令人头疼的一点就是大佬们对位运算的使用,短短几行,就可以让你云里雾里。现整理了一些位运算的小妙招,虽然花里胡哨,但是足可以令人拍案叫绝。

1.使用左移运算符 << 得到2的次方
        console.log(1 << 2) //4————2的2次方
        console.log(1 << 10) //1024————2的10次方
2.使用 & 判断奇偶性

偶数 & 1 = 0
奇数 & 1 = 1

        console.log(5 & 1) //1
        console.log(8 & 1) //0
3.使用 !! 将数字转为布尔值

所有非0的值都是true,包括负数、浮点数

        console.log(!!1) //true
        console.log(!!0) //false
        console.log(!!-1) //true
        console.log(!!6.18) //true
4.使用~~ >> << >>> | 来取整

相当于使用了 Math.floor()

        console.log(~~11.11) // 11
        console.log(11.11 >> 0) // 11
        console.log(11.11 << 0) // 11
        console.log(11.11 | 0) // 11
        console.log(11.11 >>> 0) // 11
        console.log(-11.11 >>> 0) // 4294967285

其中 >>> 不可以对负数取整

5.使用 n + 0.5 | 0 来对n进行四舍五入

相当于 Math.round()

        let x = 11.99;
        let y = 11.11;
        console.log(x + 0.5 | 0) //12
        console.log(y + 0.5 | 0) //11
        //   如果是负数,则变成 A - 0.5 | 0
        let r = -11.99;
        let z = -11.11;
        console.log(r - 0.5 | 0) //-12
        console.log(z - 0.5 | 0) //-11
6.使用^判断符号是否相同

(a ^ b) >= 0; // true 相同; false 不相同

        let b = 12;
        let c = -13;
        console.log((a ^ b) >= 0) //true
        console.log((a ^ c) >= 0) //false
7.n & (n - 1) 判断n是否为2的整数幂

如果为 0,说明 n 是 2 的整数幂
leetcode#231

        let d = 20;
        let e = 32;
        console.log(d & (d - 1)) //16————说明d不是2的整数幂
        console.log(e & (e - 1)) //0————说明e是2的整数幂

【作者水平有限,欢迎大家在评论区交流指正~】

相关文章

  • 花里胡哨的位运算技巧-JavaScript

    大佬之所以会被称之为大佬,是因为他们有些操作真的够骚。大佬的代码里面往往充满了各种“骚操作”,不加注释绝对看不懂的...

  • Javascript的位运算

    这里聊聊Javascript的位运算,但是只聊几个(与运算、或运算、否运算)。 可能有人会说:位运算有那么多内容,...

  • JavaScript 中的位运算和权限设计

    1. 内容概要 2. JavaScript 位运算 2.1. Number 2.2. 位运算 3. 位运算在权限系...

  • 位运算技巧

    消除x最后一位1:x & (x - 1)Go代码: 一、用O(1) 时间检测整数 n 是否是 2 的幂次。分析:如...

  • 位运算技巧

    基础知识 对于位运算,大家都很熟悉,基本的位操作有与(&)、或(|)、非(~)、异或(^)等等。在面试中经常会出现...

  • 位运算技巧

    位运算技巧的总结 1. 位运算基础 与(&)两个比特位同时为1结果为1,否则为0 或(|)只要有一个为1结果就为1...

  • JS装逼操作锦集

    位运算符 这套运算符针对的是整数,所以对 JavaScript 完全无用,因为 JavaScript 内部,所有数...

  • 位运算的技巧

    位运算的技巧 基本 and 运算 通常用于二进制取位操作。 例如,and 1就是取二进制末位,可以用来判断一个数的...

  • JS技巧

    # JS技巧 ** ## 三元运算符 新手 ```javascript let hungry = true; le...

  • Javascript 位运算及运用

    Javascript 位运算 参考:巧用JS位运算 ECMAScript 整数有两种类型,即有符号整数(允许用正数...

网友评论

    本文标题:花里胡哨的位运算技巧-JavaScript

    本文链接:https://www.haomeiwen.com/subject/wnztiktx.html