2014-01-24 3 views
1

varibale 'DATA'에 바이트가 있습니다. LSB 비트를 추출하여 인쇄하고 싶습니다. 저는 파이썬에 매우 익숙합니다. 복잡한 비트 별 논리가있는 많은 기사를 발견했습니다. 이해하기 힘들었습니다. 저를 도와주세요Python에서 Byte의 LSB 비트를 추출하십시오.

답변

4

는 "바이트"는 int은 ...입니다 : 우리는 문자열 예 : DATA [1 ~ 7]와처럼 나는 간단한 논리를 찾고 있어요? 그렇다면 1으로 AND (&) 비트를 취합니다 (또는 더 명확하게하려면 이진 문자 리터럴 0b1). 그러면 최하위 비트가됩니다.

"바이트"는 bytes 개체입니까? 그렇다면 색인을 생성하고 비트 AND를 취하십시오.

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

1 I는 BMP 이미지를 가지고 있고 나는 image.For이 난의 모든 바이트에서 LSB 비트를 추출 할 'rb'모드에서 파일을 열고 DATA = DATA.read (1)로 DATA에 바이트를 읽습니다. 이것은 나의 시나리오이다. – Nikhil

+0

@Nikhil 바이너리 모드 ('rb')로 파일을 읽을 때'file.read()'에서'bytes' 객체를 얻습니다. 최하위 비트를 찾으려면 '0b1 '과 비트 AND를 취하십시오. 파일의 어느 부분이 헤더이고 어떤 부분이 실제 이미지 데이터인지 파악해야합니다. PIL과 같은 라이브러리를 사용하면 도움이 될 수 있습니다. – senshin

+0

도움을 주셔서 감사합니다 ... 시도해 보겠습니다. – Nikhil

0

오른쪽 번호로 이동 N에 의해 ​​마지막 비트를 타고

num >> n &1 
관련 문제