2013-02-05 49 views
1

我正在尝试将4个整数写入单个字节。Python:将整数写入单个字节

在下面的例子中,我可以解压\ x11,然后读取位(answer = 1 2 0 0),但是我会怎么做呢?即如何将1 2 0 0打包成\ xll

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

但你知道,这样你只能存储一个值 - 3位,B - 3位,C - 1位,d - 1位?所以范围是<0,7>,b <0,7>,c <0,1>,d <0,1>。 –

回答

1

像这样:

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

完美的作品 - 非常感谢@isedev! – kungphil