首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从二维位数组中提取位

从二维位数组中提取位
EN

Stack Overflow用户
提问于 2017-11-16 01:11:30
回答 1查看 111关注 0票数 2

对于Minimax-Algorithm I代码,我想尝试按位操作来提高速度。每个游戏状态都保存为UInt128,并描述了一个基于4x4瓦片的棋盘。每个瓦片可以具有从0到32 (独占)的值,因此每个瓦片5位。

代码语言:javascript
复制
+-------+-------+-------+-------+
| 0-4   | 5-9   | 10-14 | 15-19 |
+-------+-------+-------+-------+
| 20-24 | 25-29 | 30-34 | 35-39 |
+-------+-------+-------+-------+
| 40-44 | 45-49 | 50-54 | 55-59 |
+-------+-------+-------+-------+
| 60-64 | 65-69 | 70-74 | 75-79 |
+-------+-------+-------+-------+

为了在电路板上实际执行操作,我需要基于3x3的中心从4x4中提取一个3x3块。我该怎么做呢?我可以通过简单地通过位移位访问每个单元格来手动完成,但我想知道是否有更快的方法。

提前感谢!

(Language就是C#,以防万一)

EN

回答 1

Stack Overflow用户

发布于 2017-11-16 02:42:40

位操作非常快。由于您已经可以使用位移位手动执行此操作,因此请复制4x4并将其减少到3x3,然后对其执行操作,并查看是否存在性能问题。

如果执行“操作”意味着只读,这取决于直接访问4x4中的位的成本与复制、移位和仍然需要访问3x3的成本,那么额外的复制可能会更昂贵。

另外,由于您使用的是128位类型,因此可以使用字节16。这将使访问单个单元的速度更快。

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

https://stackoverflow.com/questions/47313435

复制
相关文章

相似问题

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