gpt4 book ai didi

Javascript 掩码计算

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:58:34 25 4
gpt4 key购买 nike

所以我明白我的问题是关于掩蔽的。我看到了 javascript 屏蔽的文档 here .

所以我尝试了:

var PEN = 1;
var CHAIR = 2;
var TABLE = 4;

> PEN | CHAIR
3

但是,如果我拥有的是 3,我如何仅从该数字中获得我所拥有的呢?

原始问题

比如说,我有以下常数:

1 | 2 | 4

这些数字对应一个东西。

假设:1 是一支笔,2 是一把椅子,4 是一张 table 。

可能性:

If I have the #1 it means I have a pen but NO chair and table.
If I have the #2 it means I have a chair but NO pen and table.
If I have the #4 it means I have a table but NO pen and chair.

If I have the #3 it means I have a pen and a chair but NO table.
If I have the #6 it means I have a chair, a table but NO pen.
If I have the #7 it means I have a pen, a chair and a table.

问题:现在假设我只知道数字 6。我如何以编程方式破译 6 表示 2 和 4 或者我有一张椅子和一张 table ?

对不起,这也让我很困惑。我正在尝试将游戏的技能列表算法重新实现为 javascript。如果我有 6,这意味着我有第二和第三技能,但没有第一技能。

还有这个方法叫什么?

最佳答案

假设您有 5 种技能...A、B、C、D 和 E。您可以将这些技能编码为整数的第一、第二、第三、第四和第五位。

所以,如果玩家的技能是 0b00001000... 那意味着他有第 4 个技能。

现在,

// No skill
var skill = 0;

// add skill B... which means set second bit to 1.
skill = skill | ( 1 << 1 );

// add skill A
skill = skill | ( 1 << 0 );

//check for skill B,
var hasSkillB = ( ( skill & ( 1 << 1 ) ) > 0 );

// Remove skill B
skill = skill & ( ~( 1 << 1 ) );

关于Javascript 掩码计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28240854/

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