bytes from int python code example

Example 1: python bytes to int

"""
Python 3
"""

# int.from_bytes( bytes, byteorder, *, signed=False )
# bytes must evaluate as bytes-like object
# byteorder is optional. someString must evaluate as 'big' xor 'little'
# signed is optional. someBoolean opmust evaluate as boolean


# examples: 
someBytes = b'\x00\x01\x00\x02\x00\x03'
someInteger = int.from_bytes(someBytes)
someInteger = int.from_bytes(someBytes, 'big')
someInteger = int.from_bytes(someBytes, byteorder='little', signed=True)


"""
Python 2.7
"""

# no bytes is str in Python 2.7

import struct
struct.unpack(pattern, someBytes) 

# someBytes is of type str or byte array

# pattern is a string begining with '>' or '<', 
# followed by as many 'H' or 'B' chars needed 
# to cover the someBytes' length. 

# '>' stands for Big-endian
# '<' stands for Big-endian
# 'H' stands for 2 bytes unsigned short integer
# 'B' stands for 1 byte  unsigned char


# examples: 

>>> import struct
>>> sixBytes = b'\x00\x01\x00\x02\x00\x03'
>>> struct.unpack('>HHH', sixBytes)
(1, 2, 3)

>>> struct.unpack('<HHH', sixBytes)
(256, 512, 768)

>>> struct.unpack('>BBBBBB', sixBytes)
(0, 1, 0, 2, 0, 3)

>>> struct.unpack('<BBBBBB', sixBytes)
(0, 1, 0, 2, 0, 3)

Example 2: convert int to byte python

pythonCopy>>> (258).to_bytes(2, byteorder="little")
b'\x02\x01'
>>> (258).to_bytes(2, byteorder="big")
b'\x01\x02'
>>> (258).to_bytes(4, byteorder="little", signed=True)
b'\x02\x01\x00\x00'
>>> (-258).to_bytes(4, byteorder="little", signed=True)
b'\xfe\xfe\xff\xff'

Tags:

Java Example