gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 13:57:20 32 4
gpt4 key购买 nike

我正在尝试在(测试版)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/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com