javascript - 如果一种语言没有 "bit to bit"比较,我该如何模拟它?

标签 javascript

我正在尝试在(测试版)Trackmania 2 游戏中制作脚本。 (这是 JavaScript、HTML、C 和...其他我在最糟糕的噩梦中无法想象的东西的丑陋混合)。

脚本引擎似乎不知道“and”或“&&”(如果我尝试myVar && 16,引发的好错误是“ bool 操作等待 bool 值”)

我想做这样的事情:

if (Var && 1) {
  // Bit North => trace north
}

if (Var && 2) {
  // Bit East => trace east
}
if (Var && 4) {
  // Bit South => trace south
}
if (Var && 8) {
  // Bit West => trace West
}

如果编译器不知道位域操作,我知道如何做到这一点吗?

最佳答案

“按位与”通常是 & ,不是&& 。 (&& 通常是“逻辑与”。)“按位与”是 & C 和 JavaScript,你提到的两种语言。事实上,&&似乎是“合乎逻辑的”,并且对您收到的错误消息有所了解。解决方案可能只是使用

if (Var & 1)

如果你确实没有按位运算,仍然可以完成。请记住,4 位数字可以表示为:

b3 * 2**3 + b2 * 2**2 + b1 * 2**1 + b0 * 2**0

如果您有幂、除法、整数 chop 和模数,您可以使用以下命令来查看是否找出位 x设置为:

int( i / (2**x) ) % 2

如果没有求幂,可以用查找表代替。

如果没有模数,i % 2可以替换为( (i/2) - int(i/2) )*2

关于javascript - 如果一种语言没有 "bit to bit"比较,我该如何模拟它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290403/

相关文章:

javascript - 使用 Javascript (JQuery) 绘制交互式(dom 元素/对象)点

javascript - 浏览器未聚焦时从网站复制到剪贴板

javascript - 从另一个action获取html代码并通过javascript操作该代码

javascript - 如何复制到剪贴板javascript

javascript - 使用 jQuery 设置 SharePoint 中隐藏字段的值

javascript - REST:调用 javascript 函数将操作发送到 API

javascript - IsBasicLatin 和 IsLatin-1Supplement 作为 JavaScript 正则表达式

javascript - 我的网页不显示来自不同 html 页面的文本。 (javascript/jquery/ajax)

javascript - 收集在 forEach 的 promises 中生成的 promises

javascript - jsonp 在调用 Redmine API 时得到 404