首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果一种语言没有“位对位”比较,我如何模拟它?

如果一种语言没有“位对位”比较,我如何模拟它?
EN

Stack Overflow用户
提问于 2011-09-03 08:35:24
回答 1查看 160关注 0票数 0

我正在尝试在(测试版) Trackmania 2游戏中写一个脚本。(它是JavaScript、HTML、C和...在我最糟糕的噩梦中我无法想象的其他事情)。

脚本引擎似乎不知道"and“或"&&”(如果我尝试myVar && 16,出现的错误是"boolean operation awaits a boolean")

我想做一些类似的事情:

代码语言:javascript
运行
复制
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
}

如果编译器不知道位域操作,你知道我该怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-03 08:51:04

"Bitwise and“通常是&而不是&&。(&&通常是一个“逻辑与”运算。)“位与”是C和JavaScript中的&,这是你提到的两种语言。事实上,根据你得到的错误信息,&&似乎是“逻辑与”的。解决方案可能简单地使用

代码语言:javascript
运行
复制
if (Var & 1)

如果你真的没有按位运算,它仍然可以做到。请记住,4位数字可以表示为:

代码语言:javascript
运行
复制
b3 * 2**3 + b2 * 2**2 + b1 * 2**1 + b0 * 2**0

如果您有求幂、除法、整数截断和取模,则可以使用以下命令来查看是否设置了位x

代码语言:javascript
运行
复制
int( i / (2**x) ) % 2

如果没有幂运算,可以用查找表来代替。

如果你没有模数,可以用( (i/2) - int(i/2) )*2代替i % 2

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7290403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档