在 JavaScript 中以二进制级别计算
Calculating at binary level in javascript
在我的2D环境中,玩家可以对角线,水平和垂直移动。查看下面的网格时,您可以看到玩家(标记为 x
(可以从他(或她 xD(现在的位置移动到 8 个不同的位置。
1 | 2 | 3
-----------
4 | x | 5
-----------
6 | 7 | 8
而不是将其存储为(这是大量数据(:
Go1 = true;
Go2 = true;
Go3 = true;
Go4 = true;
Go5 = true;
Go6 = true;
Go7 = true;
Go8 = true;
我认为最好先将其转换为:
11111111
..这代表了 8 倍真实。考虑到这一点,并且知道二进制数的十进制表示11111111
(8 位(等于数字:255
我宁愿转换它并将当前可能移动到的位置存储为 255
.
法典:
x = parseInt(11111111);
var bin = x.toInt(2);
document.write(bin);
这意味着,如果在(例如(位置(1、4 和 6(= 玩家左侧有一堵墙,则玩家只能移动到:
01101011
可以存储为:107
.
假设玩家想要移动到位置3
。这意味着我的脚本必须执行以下操作:
- 将 3 位当前可能移动到的位置数转换回二进制
- 从该二进制代码中获取第三个数字
- 检查该数字是 1 还是 0
问题:是否可以在不在 Javascript 中来回转换为二进制的情况下计算这一点?如果是,如何?
位移,使相关数字最不重要,然后测试值的奇偶校验:
function getPositionInRow(rowval, pos) {
return (rowval >> (8 - pos)) % 2;
}
这将返回指定位置的值,从左侧开始计数,从 1 开始索引。
相关文章:
- 根据元素和容器大小计算边距
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 如何将PDF作为二进制文件传递到window.open()
- 使用D3.js计算带有字母间距的文本长度
- 如何将字母转换为二进制代码
- 使用CSS或JavaScript计算分页符的数量
- 可以't计算自定义谷歌地图的js
- 如何计算每个元素's的高度,并将这些值用作函数中的变量
- JavaScript计算帮助(乘以时间)
- 如何计算对象文字中的键
- JavaScript循环无法正确计算/显示结果
- 与域在同一台计算机上运行的NODEJS服务器的CORS错误
- 四舍五入JavaScript计算
- 计算HTML中的页数
- 使用jQuery计算数组中的对象以更改进度条
- 如何在jquery中使用实时计算求和值
- 计算多个项目的价格
- 计算CSS3缩放框在另一个框中的最高位置
- 在 JavaScript 中以二进制级别计算
- 如何在二进制数据上计算MD5