使用std :: bitset或相同大小的基本类型?

时间:2015-08-08 22:39:27

标签: c++ bit-manipulation std-bitset

我正在创建一个国际象棋解算器,并决定使用位板。方便地,标准棋盘上有64个方格。这很好,因为单个位板的64位操作系统普遍存在于单个寄存器中。

那就是说,使用std::bitset<64>及其中的函数或者&#34;相同&的基本类型是否存在基本差异(大小(内存和代码),速度,复杂性,内存使用等) #34;尺寸unsigned long long并手动执行钻头?

1 个答案:

答案 0 :(得分:3)

可能

uint64_t。您将要执行std::bitset上不可用的操作,包括几乎所有算术运算,位扫描,使用电路板的一部分作为数组的索引,以及SSE内在函数,如果您认真对待它。 / p>

例如(o^(o-2r)中没有详尽的列表,只是一些简单的例子)(及其cousin),更高级的双曲线精华,作为提取最低设置位的一部分,等

你可以使用std::bitset,但是你要将它转换回某种类型的整数。