바이너리 데이터 구문 분석을 위해이 작은 패키지 "construct"을 사용하고 있습니다.정렬되지 않은 int 필드에 대한 구문 분석을 생성 하시겠습니까?
31 24 23 0
+-------------------------+
| status | an int number |
+-------------------------+
기본적 상위 8 비트의 상태에 대해 사용되며, 3 바이트 정수 왼쪽 : 상위 비트와 INT 타입 오프 마스크 형식으로 정의된다 그러나, I는 경우에 부딪쳤다. 내가 저장 BitStruct을 사용할 수 있습니다 어쨌든
이- 무력 방법
ULInt32
로 정의하고 자신에게 - 마스킹 비트를하는 것입니다 있나요 : 나는 조금 형식을 정의하는 적절한 방법이 무엇인지에 손실입니다 수고?
sample = "\xff\x01\x01\x01" c = BitStruct("foo", BitField("i", 24, swapped=True), BitField("status", 8)) c.parse(sample) Container({'i': 66047, 'status': 1})
감사
을 : 리틀 엔디안 및 jterrace의 예를 기반으로 교체 = 진정한 제안을 가정
편집
, 나는이 내 경우에 작동합니다 어떤 생각 올리버
? 'val >> 24'와'val & 0xfff'는 꽤 잘 읽을 수 있습니다. –
@ Anony-Mousse 나는 그렇게 단순하지 않다고 생각합니다. 이것은 구조체 또는 배열 내부에있을 수 있으며, 이미 구조를 사용하여 해당 데이터 구조를 구문 분석합니다. – jterrace