0

Хочу бит перевести в байт формат, таким способом

b = 10
a = b.to_bytes(1, byteorder='big')
print(a)

Но в ответе получаю b'\n' (это эквивалентно 1010 в битах) , вместо ожидаемого b'\x02'.

Как я понял проблема в том, что питон переводит 10 формата int в байты, а мне нужно 10 bit перевести. Так вот, как мне указать, что мой вводимый формат бит(если это возможно). Или есть ли какой другой способ решения нужной мне задачи.

задан 6 мая 2020 в 19:13
1
  • Если байт всего один, то можно bytes([0b10]) Commented 6 мая 2020 в 19:34

2 ответа 2

1

Проблема в том, что вы задаёте переменной b значение в десятичной системе, а значит в двоичной системе значение переменной равно 1010, и этому соответствует символ новой строки (в Python представление байтов \xNN заменяется символом, когда есть читаемый символ соответствующий числу). Чтобы задать значение переменной в двоичной системе, необходимо указать перед цифрами 0b. Таким образом:

b = 0b10 # то же самое, что и b = 2
a = b.to_bytes(1, byteorder='big')
print(a) # b'\x02'
ответ дан 6 мая 2020 в 19:22
1
  • да уж, все оказалось куда проще.. упустил из виду указатель на двоичное число. Спасибо большое)) Commented 6 мая 2020 в 19:39
0

такой вариант тоже помог

b = '10'
a = int(b, 2).to_bytes(1, byteorder='big') # указали на то, что число находится в двоичной системе 
print(a)
ответ дан 6 мая 2020 в 20:33

Ваш ответ

Черновик сохранён
Черновик удалён

Зарегистрируйтесь или войдите

Регистрация через Google
Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Отправить без регистрации

Необходима, но никому не показывается

Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, что прочитали политику конфиденциальности.

Начните задавать вопросы и получать на них ответы

Найдите ответ на свой вопрос, задав его.

Задать вопрос

Изучите связанные вопросы

Посмотрите похожие вопросы с этими метками.