擅长:python、mysql、java
<p>通过访问单个字节,可以始终将整数转换为字节,反之亦然。只需要处理好endianness。在</p>
<p>下面的代码使用一个随机整数转换成24位二进制并返回。在</p>
<p>导入结构,随机</p>
<pre><code># some number in the range of [0, UInt24.MaxValue]
originalvalue = int (random.random() * 255 ** 3)
# take each one of its 3 component bytes with bitwise operations
a = (originalvalue & 0xff0000) >> 16
b = (originalvalue & 0x00ff00) >> 8
c = (originalvalue & 0x0000ff)
# byte array to be passed to "struct.pack"
originalbytes = (a,b,c)
print originalbytes
# convert to binary string
binary = struct.pack('3B', *originalbytes)
# convert back from binary string to byte array
rebornbytes = struct.unpack('3B', binary) ## this is what you want to do!
print rebornbytes
# regenerate the integer
rebornvalue = a << 16 | b << 8 | c
print rebornvalue
</code></pre>