Int zu binärer python

Diese Frage ist wahrscheinlich sehr einfach für die meisten von euch, aber ich kann die Antwort noch nicht finden.

Ich baue einen Netzwerk-Paket-Generator, der so geht:

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"), ]) 

Später rufe ich meine Klasse an und schicke das Paket so:

 send(PacketHeader(Sequencenum=257)) send(PacketHeader(Sequencenum=258)) send(PacketHeader(Sequencenum=259)) 

Leider, auf dem Draht habe ich \x32\x35\x37 (257 in hex ) anstatt dies zu haben: \x01\x01 .

Was ich gerne machen möchte, ist:

 send(PacketHeader(Sequencenum=257+1)) 

Und habe es richtig auf den Draht umgewandelt

Danke im Voraus !

3 Solutions collect form web for “Int zu binärer python”

Wenn du int oder einen anderen primitiven Datentyp in Binär konvertieren möchtest, dann kann dir das struct helfen.

http://docs.python.org/library/struct

 >>> import struct >>> struct.pack('>i', 257) '\x00\x00\x01\x01' >>> struct.pack('<i', 257) '\x01\x01\x00\x00' >>> struct.unpack('<i', '\x01\x01\x00\x00') (257,) >>> struct.unpack('>i', '\x00\x00\x01\x01') (257,) 

ms4py erwähnt, dass Sie möchten, um 2 Byte Ints so zu konvertieren:

 >>> struct.pack('>h', 257) '\x01\x01' >>> struct.unpack('>h', '\x01\x01') (257,) >>> 

Oh und:

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

Wenn du eine ganze Zahl hast und will hex:

 hex(257) '0x101' 

Anders herum

 int('0x101', 16) 257 

Scheint mir, dass du eine ganzzahlige Binärkonverter willst.

Wenn das der Fall ist, dann sollte das funktionieren:

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

Hoffe das hilft

  • Konvertieren dezimal zu hex python
  • Python Messager LAN
  • Unerwünschtes RST TCP Paket mit Scapy
  • Posting auf WordPress mit Python
  • Python, Wie bekomme ich alle externen IP-Adressen mit mehreren NICs
  • Mehrere Antworten in Twisted
  • Python Freigeben einer Netzwerk-Socket mit Multiprocessing.Manager
  • Python Networked Chat
  • Senden von beliebigen Daten mit Twisted
  • Python P2P Sockets Chat Script funktioniert nur auf Heimnetzwerk (nicht im Schulnetzwerk)
  • Wie kann ich überprüfen, ob ein ip in einem Netzwerk in Python ist
  • Python ist die beste Programmiersprache der Welt.