2014-01-24 2 views
1

У меня есть байт в varibale 'DATA'. Я хочу извлечь из него бит LSB и распечатать его. Я очень новичок в python, я нашел много статей со сложной логикой добавления бит и все, что было очень сложно понять. Я ищу простую логику, как мы делаем со строками, например DATA [7: 1] Пожалуйста, помогите мне ...Извлечь бит LSB из байта в python

ответ

4

Ваших «байты» int? Если это так, просто побитовое И (&) с 1 (или, если вы хотите быть более явным, бинарный литерал 0b1), чтобы получить младший значащий бит.

>>> x = 14 
>>> x & 1 
0 
>>> x = 15 
>>> x & 1 
1 

Ваш "байт" а bytes объект? Если да, просто проиндексируйте его и возьмите побитовое И.

>>> y = bytes([14, 15]) 
>>> y[0] & 1 
0 
>>> y[1] & 1 
1 
+0

У меня есть изображение в формате BMP, и я хочу, чтобы извлечь LSB бит из каждого байта image.For это я открыли файл в режиме 'rb' и читали байты в DATA как DATA = file.read (1). Это мой сценарий. – Nikhil

+0

@Nikhil Когда вы читаете файл в двоичном режиме ('rb'), вы получаете объект' bytes' из 'file.read()'. Чтобы найти наименее значащий бит, возьмите поразрядное И с '0b1'. Обратите внимание, что вам нужно будет выяснить, какие части файла являются заголовком, а какие - фактическими данными изображения. Это может помочь использовать библиотеку, такую ​​как PIL. – senshin

+0

спасибо за помощь ... позвольте мне попробовать это – Nikhil

0

Сдвиг вправо на число п и взять последний бит за и 1

num >> n &1 
Смежные вопросы