Binary - Hexa - Integer - 数据转换和处理

时间:2016-01-17 02:40:37

标签: python

我正在寻找Python3 lib或处理二进制数据的实现方式。 这个例子告诉你的不仅仅是文字:

数据包的第一部分:

packet.data1 = '0x0EDD'

我想将开头与最后两位分开,所以我使用数组方法:

my_id = int(bin(int(packet.data1,16))[-2:],2)
my_len_of_len = int(bin(int(packet.data1,16))[:-2],2)

现在在第二部分,如果my_len_of_len等于1,我必须抓住以下字节,如:

packet.data2 = '0x08'

然后我必须将它转换为int才能知道后面的字节数,它们是消息的内容:

my_len = int(packet.data2,16)

现在我可以从数据中捕获消息。我试图了解一个游戏协议,但我知道的方法,它的速度慢了#34;很难找到所有数组索引。

我的解决方案?

谢谢。

1 个答案:

答案 0 :(得分:0)

我建议使用库。我个人的建议是很棒的construct库。

您开始使用的方法,使用逐位运算符或使用struct.unpack等方法极易出错且难以维护。