当前位置: 首页 > 知识库问答 >
问题:

只有某些位可以改变的二进制数的所有组合

苏波涛
2023-03-14

一个解决方案是首先将该数字视为一个8位数字,然后计算xxxxxxx的所有组合。但是,这并不能完全满足我的需要,因为我想稍后在线性移位寄存器(LFSR)中使用该数字,目前,我正在寻找一个利用std::bitset的答案。

共有1个答案

常英资
2023-03-14

满足模式的整数可以通过使用“屏蔽增量”进行迭代来枚举,该“屏蔽增量”增加变量位,但保持固定位不变。为了方便起见,我将假设“固定位”为零,但如果不是,只要做一些小的更改,它仍然可以工作。掩码固定位为1,可变位为0。

uint32_t x = 0;
do {
    // use x
    ...
    // masked increment
    x = (x | mask) + 1 & ~mask;
} while (x != 0);

x mask设置固定位,这样进位将“通过”固定位。+1增加变量位。&~mask清理设置的额外位,将固定位变为零。

std::bitset不能递增,因此很难直接使用,但是如果需要,可以将整数转换为std::bitset

 类似资料:
  • 我试图在一个形状为(n,10)的数组中创建所有可能的0和1的组合。例如,如果我们假设一个像这样的任意组合:np.array([0,0,1,1,0,0,1,1,0,0]),我如何生成所有可能的组合(这将产生2^10=1024数组)?

  • 假设我们将考虑长度为且的二进制数可能约为。我们正在寻找具有以下特性的编号(k受限制): 量等于量,可以描述如下: 这个数字的每个前缀都必须至少包含与和一样多的。否定句子后可能更容易理解,即:没有前缀会包含比更多的。 基本上就是这样。为了清楚起见,让我们做一些例子:,我们必须取长度的二进制数: 现在我们必须找到满足这两个要求的第二个编号。所以我们看到是第一个,而是第二个。如果我们改变,那么答案就不存

  • 本文向大家介绍可以改变页面布局的属性有哪些?相关面试题,主要包含被问及可以改变页面布局的属性有哪些?时的应答技巧和注意事项,需要的朋友参考一下 属性—position top right bottom left 属性—z-index 属性—text-align text-valign line-height 属性—display visibility 属性—overflow 属性—float cl

  • 问题内容: 在Python中,如何获取二进制值和的所有组合? 例如,如果我想要 我怎样才能做到这一点? 问题答案: 采用 这将产生一个元组列表(请参阅此处) 您可以轻松地将其更改为使用变量: 如果需要列表列表,则可以使用该功能(感谢@Aesthete)。 或在Python 3中: 请注意,使用或列表理解意味着您无需将产品转换为列表,因为它将迭代对象并产生一个列表。

  • 我试图将所有可能的256位二进制序列放入一个字符串数组。为了做到这一点,我创建了8个for循环,以包含所有可能的情况。这是我到目前为止试过的。 这个方法应该返回一个包含所有可能情况的字符串数组。但是,我不知道如何通过使用int值进行for循环来插入这些值。很容易将它打印出来:“System.out.println(i j k.....p)'任何帮助都将不胜感激!