位板64位机:我应该使用int16或int64的4x4板?



我在64位机器上使用位板用c++编程4x4棋盘游戏。我只需要16位来实现这个板。我应该使用:

  • uint16_t-减少已使用空间?
  • uint64_t-如果操作(?)64位整数更快,我应该使用它们,并在必要时用0xFFFF(位与)掩码值吗?
  • uint_fast16_t-我刚刚发现了这个整数类型,但我不确定它是如何工作的,如果我也需要一个掩码?

我不知道它是否有帮助,但我的处理器是:Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz 1.99 GHz

  • 如果您希望节省空间,请使用uint16_t
  • 如果您希望节省时间,请使用uint_fast16_t
  • uint64_t对于以8字节边界对齐的值数组也可能有用。但是,这不太可能给您带来太多好处,因为它的代价是浪费为数组分配的75%的内存,以及相关的缓存性能损失。

注意:如果你的库将uint_fast16_t映射到uint64_t,你可能最终使用与uint64_t相同的类型。

最新更新