【发布时间】:2010-11-03 11:36:31
【问题描述】:
我目前将数据以二进制形式存储在 XML 文档中,长度为 20 位,每个代表一个布尔值。
<matrix>
<resource type="single">
<map>10001010100011110000</map>
<name>Resource Title</name>
<url>http://www.yoursite.com</url>
</resource>
</matrix>
我正在使用 jQuery 解析它,目前正在使用 for 循环和 charAt() 来确定如果值为 == "1" 是否要执行操作。
for (var i = 0; i < _mapLength; i++) {
if (map.charAt(i) == "1") {
//perform something here
}
}
这发生了几次,作为运行缓慢的巨大循环的一部分。有人告诉我,我应该使用按位运算符来处理它,它会运行得更快。
我的问题是:
谁能给我举个例子来说明我如何做到这一点?我试过在线阅读教程,它们似乎就在我头顶上。 (仅供参考:我正计划创建一个 Ruby 脚本,它将我的二进制 0 和 1 转换为我的 XML 中的位。)
或者有没有人知道一个好的、简单的(甚至可能是简化版)教程或可以帮助我掌握这些按位运算符概念的东西?
【问题讨论】:
-
遗憾的是,如果您/必须/对每个位执行操作,我认为您不会获得太多性能提升。
-
XML 中的二进制让我很伤心。
-
您可以将该 20 位二进制数存储为更高基数的更紧凑的数字,如果您愿意,仍然可以在 JavaScript 中使用它进行布尔运算。
标签: javascript jquery binary compare bit-manipulation