Search code examples
pythonbyteconverters

Python - convert signed int to bytes


this code works fine:

an_int = 5
a_bytes_big = an_int.to_bytes(2, 'big')
print(a_bytes_big)

but when i change an_int to -5, i get the following error:

a_bytes_big = an_int.to_bytes(2, 'big')

OverflowError: can't convert negative int to unsigned

how can I convert signed int without getting error?


Solution

  • error messgae is clear , if your vaue includes signs you need to pass signed =True when you convert it to bytes:

    an_int = -5
    a_bytes_big = an_int.to_bytes(2, 'big', signed = True)
    print(a_bytes_big)