执行模运算的其他方式
Other ways of performing modulo operation
不久前,我在某个地方看到了使用位运算符执行模运算的技巧。但现在我无论如何都无法进行正确的手术。有人知道怎么做吗?据我记忆所及,它比使用%要快。
"诀窍"是将AND
二进制为一个值为1的值。任何奇数的第一位都必须设置为1。
所以
var foo = 7;
if( foo & 1 ) { // true
}
使用逐位AND在几乎所有平台/浏览器中都具有更好的性能。
for(var loop = 0; loop < 10; loop++) {
if( loop & 1 ) {
console.log('I am ', loop, ' and I am odd!');
}
}
您可以通过将值与(2^k(-1进行"与"运算来实现2^k(2的幂(的模运算。
相关文章:
- 如何“;过滤器”;或者以其他方式重构该数据
- 别名或以其他方式合并两个具有不同名称的相同对象原型
- 将不同上传的文件显示为缩略图或任何其他方式
- 将DIV包裹在锚标签内或其他方式
- 如何使用cURL或其他方式在点击时执行事件
- 是否可以在JqGrid中按字母顺序以外的其他方式对组进行排序
- 如何使用 PHP 以外的其他方式解析 RSS 提要
- 使用 Curl 或其他方式检索完全呈现的页面
- 在循环或以其他方式动态创建 JSON 对象中的属性
- Javascript:与正则表达式或其他方式进行比较
- 角度重定向到其他方式而不检测视图,但当我单击后退按钮时它可以工作
- 将 HTML 表转换为下拉列表(或以其他方式获取带有列的选择标记)
- 运行javascript以外的其他方式:从url
- Packery - jquery show/hide有效,但不能以其他方式工作
- 聚合来自mongodb,map reduce或任何其他方式的数据
- 从链接打开窗口(模式或其他方式),并使用代码隐藏中的数据加载它
- 添加文本框或其他方式
- EXTJS 6.x到4.x以图形或其他方式查看组件的分层
- 获取浏览器信息的任何其他方式,而不是检索UserAgent
- chrome扩展无法使用内容脚本和其他方式从谷歌加载外部javascript