C++ 我应该如何存储和计算二进制代码之间的汉明距离?

C++ 我应该如何存储和计算二进制代码之间的汉明距离?,c++,math,hash,hamming-distance,C++,Math,Hash,Hamming Distance,如何有效地存储二进制代码?对于某些固定大小,例如32位,可以使用基本类型。但是如果我的二进制代码长得多怎么办 计算两个二进制码之间的汉明距离的最快方法是什么 使用,在标题中定义,其中N是位数(而不是字节) 使用(a^b).count()计算两个二进制代码a和b之间的汉明距离 关于std::bitset呢?我不明白如果使用30位代码,我还可以使用32位整数呢?(可能会以某种方式屏蔽前2位)?@mrglud我会使用这种方法,对其进行分析,然后只有当您确定它太慢时,才考虑执行自定义操作。我的理解是,一

如何有效地存储二进制代码?对于某些固定大小,例如32位,可以使用基本类型。但是如果我的二进制代码长得多怎么办

  • 计算两个二进制码之间的汉明距离的最快方法是什么

  • 使用,在
    标题中定义,其中
    N
    是位数(而不是字节)
  • 使用
    (a^b).count()计算两个二进制代码
    a
    b
    之间的汉明距离

  • 关于std::bitset呢?我不明白如果使用30位代码,我还可以使用32位整数呢?(可能会以某种方式屏蔽前2位)?@mrglud我会使用这种方法,对其进行分析,然后只有当您确定它太慢时,才考虑执行自定义操作。我的理解是,一个
    std::bitset
    将只使用4字节的存储空间。很好的Timothy,也许你能帮上忙。