Byte order

| Character | Byte order | |:———–|:———–| | @ | native | | = | native | | < | little-endian | | > | big-endian | | ! | network (= big-endian) |

import struct
struct.pack('>h', 1023)
b'\x03\xff'
struct.pack('<h', 1023)
b'\xff\x03'

Format

A format character may be preceded by an integral repeat count. For example, the format string ‘4h’ means exactly the same as ‘hhhh’.

Format C Type Python Type Standard Size
c char bytes of length 1 1
b signed char integer 1
B unsigned char integer 1
? _Bool bool 1
h short integer 2
H unsigned short integer 2
i int integer 4
I unsigned int integer 4
l long integer 4
L unsigned long integer 4
q long long integer 8
Q unsigned long long integer 8
f float float 4
d double float 8
s char[] bytes  
p char[] bytes  
pack(">bhl", 1, 2, 3) # b'\x01\x00\x02\x00\x00\x00\x03'
unpack('>bhl', b'\x01\x00\x02\x00\x00\x00\x03') # (1, 2, 3)
struct.calcsize('>bhl') # 7
pack("@ccc", b'1', b'2', b'3') # b'123'
pack("@3s", b'123') # b'123'

Native byte order

sys.byteorder