int到二进制python

int到二进制python,python,networking,binary,int,Python,Networking,Binary,Int,这个问题对你们大多数人来说可能很容易,但我目前还找不到答案 我正在构建一个网络数据包生成器,如下所示: class PacketHeader(Packet): fields = OrderedDict([ ("head", "\x00"), ("headpad", "\x00"), ("headlen", "\x1a\x00" ), ("presentflag", "\x2e"), ("timestamp", "\x43\x10\x58\x16\xa1\x

这个问题对你们大多数人来说可能很容易,但我目前还找不到答案

我正在构建一个网络数据包生成器,如下所示:

class PacketHeader(Packet):
fields = OrderedDict([
    ("head", "\x00"),
    ("headpad", "\x00"),
    ("headlen", "\x1a\x00" ),
    ("presentflag", "\x2e"),
    ("timestamp", "\x43\x10\x58\x16\xa1\x01\x00\x00"),
    ("flag", "\x03"),
    ("Sequencenum", "\x04\x00"),

])
send(PacketHeader(Sequencenum=257))
send(PacketHeader(Sequencenum=258))
send(PacketHeader(Sequencenum=259))
稍后,我给我的班级打电话,并像这样发送数据包:

class PacketHeader(Packet):
fields = OrderedDict([
    ("head", "\x00"),
    ("headpad", "\x00"),
    ("headlen", "\x1a\x00" ),
    ("presentflag", "\x2e"),
    ("timestamp", "\x43\x10\x58\x16\xa1\x01\x00\x00"),
    ("flag", "\x03"),
    ("Sequencenum", "\x04\x00"),

])
send(PacketHeader(Sequencenum=257))
send(PacketHeader(Sequencenum=258))
send(PacketHeader(Sequencenum=259))
不幸的是,在电线上我有
\x32\x35\x37
(257 in
hex
),而没有这个:
\x01\x01

我想做的是能够:

send(PacketHeader(Sequencenum=257+1)) 
并在导线上正确地将其转换为int


提前谢谢

如果要将
int
或任何其他基本数据类型转换为二进制,则
struct
模块可能会帮助您

哦,还有:

>>> struct.unpack('>h', '\x10\x00')
(4096,)
>>> 

如果您有一个整数并需要十六进制:

hex(257)
'0x101'
反过来

int('0x101', 16)
257

在我看来,你需要一个整数到二进制的转换器

如果是这样的话,那么这应该是可行的:

def convert(N):
    if not N:
        return ''
    else:
        return "%s%s" %(convert(N/2), N%2)

希望这有帮助

我可能被太多的信息弄糊涂了:-)你想把整数转换成十六进制吗?你能给出一个简单的输入和期望的输出例子吗?@martineau:我错了,你应该读:“\x01\x01”。将修改我的帖子。我也是这么想的。。但似乎太直截了当了:)也许OP会clarify@Levon同意-但我想我会坐个平底船;)谁知道呢,这可能就是那张票。。如果OP喜欢的话,你也会得到我的支持。@Levon我确实喜欢结构的答案-更便携的
bin(N)[2::
已经可以了:)。。“包括电池”等等。(没有否决!)不知道
bin(n)
。天哪!我做这件事的次数!这些年来,我在这么多模块中浪费了这么多LOC,这让我感觉很安静tear@Levon代码与“{:b}”相同。我认为格式(257)(如果您不需要前导的0x内容…)Downvoter:您想给我一个原因,让我升级我的答案吗?可能他想要一个简短的(两个字节的int):
>>struct.pack(“!h',258)
'\x01\x02'
也许你是对的,我不知道:(…无论哪种方式,指向结构的链接都应该帮助他决定如何进行转换,我还是会添加示例,谢谢。我应该考虑一下!!谢谢你的回答。