擅长:python、mysql、java
<p>您可以使用<a href="http://docs.python.org/library/struct.html" rel="nofollow noreferrer">^{<cd1>} module</a>从任意布局构建二进制字符串。在</p>
<p>这只能生成字节对齐的结构,但无论如何,您需要对字节进行对齐才能在网络套接字上发送。在</p>
<p>编辑:</p>
<p>所以你生成的格式确实有不对齐的位8-1-1-2-12-16等等</p>
<p>为了发送一个套接字,你需要字节对齐,但是我想协议是如何处理的。(也许在某处加了填充物?)在</p>
<p>我的新建议是建立一个位字符串,然后将其切分为8位块并从那里进行转换:</p>
<pre><code>input_binary_string = "110010111111111111101010" ## must be a multiple of 8
out = []
while len(input_binary_string) >= 8:
byte = input_binary_string[:8]
input_binary_string = input_binary_string[8:]
b = int(byte,2)
c = chr(b)
out.append(c)
## Better not have a bits left over
assert len(input_binary_string) == 0
outString = "".join(out)
print [ ord(c) for c in out ]
</code></pre>