1

我正在使用 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

4

1 回答 1

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

注意:您最终可能会使用与uint64_t您的库映射uint_fast16_tuint64_t.

于 2021-09-11T01:56:04.637 回答