首页 > 代码库 > JavaScript 位运算笔记
JavaScript 位运算笔记
之前一直以为,在js的位运算中,双精度浮点数在内部会先被转成32位整数,再执行位运算,然后再转为64位数值,因此效率极低。今天实验发现,对浮点执行位运算只会导致数值不准确,而不会导致效率低下,相比乘法,左移位要快66%(其实就是浮点运算与整数运算的差距)。
以下结果在 IE 7 ~ IE 10 上测试得出
技巧1:移位运算比乘除法快(当因数是2的幂数)
b = a << 1;//大概快 6.8%
技巧2:奇偶判断
b = a & 1;//0位与1相与,相比于 x % 2,大概快 35%
技巧3:判断两个数符号是否相同
(a ^ b) >= 0// 相比于if ( a == 0 )return 1;else if ( a > 0 )return b >= 0;elsereturn b <= 0;// 其效率基本一样,但更简洁。// 相比于(a * b) >= 0;// 不会有溢出问题。
技巧4:判断一个数是否为2的幂
(a & (a - 1)) == 0;
JavaScript 位运算笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。