У меня есть bitstring.Bitarray и хочу читать с определенной позиции на другую позицию. У меня есть переменная длина int в цикле for, поэтому, например, у меня есть:
length = 2
и мой Bitarray выглядит примерно так:
msgstr = bitstring.BitArray(0b11110011001111110)
id = bitstring.BitArray()
m = 0
while 5 != m:
/////////////
Length changes in value part of Code
/////////////
x = 0
if m == 0:
while length != x:
id.append = msgstr[x] #msgstr is the BitArray that needs to be read
x = x + 1
m = m + 1
Затем я хочу прочитать первые два бита и преобразовать их в int, чтобы у меня было: id == 3
И для следующего раунда, когда длина изменилась в значении, она должна начинаться с третьего бита и т. Д.
2 ответа
Код внутри вашего цикла только делает что-либо, если m == 0, но затем вы увеличиваете m, так что m будет только 0 в первый раз в цикле. В остальное время вы проходите через цикл, кажется, что он на самом деле ничего не делает.
Кроме того, где вы говорите
id.append = msgstr[x]
Вы, вероятно, на самом деле хотите
id.append(msgstr[x])
Также может показаться, что вам может пригодиться использование фрагмента Python.
Я не совсем понимаю, какова ваша цель, но вы взглянули на https: //wiki.python. org / moin / BitManipulation?
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.