2013-02-05 4 views
1

단일 바이트에 4 개의 정수를 쓰려고합니다.파이썬 : 정수를 단일 바이트로 작성

아래 예에서는 \ x11의 압축을 풀고 비트 (answer = 1 2 0 0)를 읽을 수 있지만 그 반대의 경우 어떻게 할 수 있습니까? ie \ xll에 1 2 0 0을 어떻게 포장하겠습니까

import struct 

val = struct.unpack('B', '\x11')[0] 

a = val & 7 
b = (val >> 3) & 7 
c = (val >> 6) & 1 
d = (val >> 7) 

print a, b, c, d 

저는이 모든 것에 매우 새로운 것입니다 ... 많은 감사합니다! 이처럼

+0

하지만 당신은 그런 식으로 당신이 할 수있는 유일한 저장소가 값 알아? 따라서 범위는 <0,7>, b <0,7>, c <0,1>, d <0,1>입니다. –

답변

1

: - 3 비트, B - 3 비트, C - 1 비트, D - 1 비트

val = ((d & 1) << 7) | ((c & 1) << 6) | ((b & 7) << 3) | (a & 7) 
+0

완벽하게 작동합니다 - 매우 감사드립니다 @isedev! – kungphil

관련 문제