我有一个二进制整数的字符串表示,我需要具有确切位结构的字节来通过套接字发送。
例如,如果我有一个长度为 16 的字符串:0000111100001010
那么我需要 2 个字节的相同位结构。在这种情况下,第一个字节应该有一个 int 值,15
第二个字节应该是10
. 它们是否可以以ascii
格式打印并不重要。我如何得到它?
我尝试了以下方法,它以0xf0xa
. 但这是 6 个字节而不是 2 个字节。
def getByte(s):
if(len(s) != 8):
return
b = b'0'
for c in s:
b = (int(b) | int(c)) & 0x0000ff #This makes b an integer
b = b << 1
b = b >> 1 #because of 1 extra shift
b = hex(b).encode('utf-8') #how else can I get back to byte from int?
return(b)
此方法采用长度为 8 的字符串,并打算给出相同内部位结构的字节,但失败了。(我需要类似于strtol
in 的东西C
。)
请问有什么帮助吗?