小编Luk*_*eek的帖子

JS 按位移位运算符“>>”未返回正确结果

我在 JS 中发现了这个奇怪的问题。我有一些与棋盘游戏 api 的本机绑定,它使用位板来表示游戏状态。我试图在 JS 中操作这些位板以在基于 Web 的 GUI(使用电子)中显示结果。

1bitboard 中的s 代表棋子的位置。下面是一个例子:

const bitboard = 0b100000010000000000000000000000000000;
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时bitboard >>= 1;,值神奇地变成了0b1000000000000000000000000000

可运行示例:

const bitboard = 0b100000010000000000000000000000000000; // 0b is binary literal
console.log(bitboard.toString(2));
console.log((bitboard >> 1).toString(2)); // .toString(2) prints the number in binary
Run Code Online (Sandbox Code Playgroud)

编辑:相同的代码适用于 Rust,这是我在本机端使用的语言。

javascript bitwise-operators

3
推荐指数
1
解决办法
190
查看次数

标签 统计

bitwise-operators ×1

javascript ×1