В рамках моей магистерской работы я получаю число (например, 5 бит) с двумя значащими битами (2-й и 4-й). Это означает, например, x1x0x
, где $x \in {0,1}$
(x может быть 0 или 1) и 1,0
— биты с фиксированными значениями.
Моя первая задача — вычислить все комбинации приведенного выше числа 2^3 = 8
. Это называется S_1
группа.
Затем мне нужно вычислить группу «S_2», а это все комбинации двух чисел x0x0x
и x1x1x
(это означает одно несовпадение в значащих битах), это должно дать нам $\bin{2}{1} * 2^3 = 2 * 2^3 = 16
.
ИЗМЕНИТЬ Каждое число, x1x1x
и x0x0x
, отличается от исходного числа, x1x0x
, одним значащим битом.
Последняя группа, S_3
, это, конечно же, два несовпадения из значащих битов, это означает, что все числа, которые проходят форму x0x1x
, 8 возможностей.
Вычисление может быть выполнено рекурсивно или независимо, это не проблема.
Я был бы рад, если бы кто-то мог дать отправную точку для этих вычислений, поскольку то, что у меня есть, не так эффективно.
ИЗМЕНИТЬ Возможно, я неправильно выбрал слова, используя значащие биты. Я хотел сказать, что определенные места в пятибитном числе фиксированы. Эти места я определил как конкретные биты.
EDIT Я видел уже 2 ответа, и кажется, что я должен был быть более ясным. Что меня больше интересует, так это нахождение чисел x0x0x
, x1x1x
и x0x1x
с учетом того, что это просто пример. На самом деле группа S_1
(в данном примере x1x0x
) должна состоять из не менее чем 12-битных чисел и может содержать 11 значащих битов. Тогда у меня было бы 12 групп...
Если что-то по-прежнему непонятно, спрашивайте ;)