← index #15399Issue #682
Duplicate · high · value 0.923
QUERY · ISSUE

int.to_bytes and int.from_bytes: signed parameter not implemented

openby Brun059opened 2024-07-03updated 2024-08-28
bugpy-core

Port, board and/or hardware

esp32-WROOM

MicroPython version

MicroPython v1.23.0 on 2024-06-02; Generic ESP32 module with ESP32

Reproduction

in micropython

int.from_bytes(b'\xFF\xFF' , 'big' , True)   --->  65535

in Python 3.11.4

int.from_bytes(b'\xFF\xFF' , byteorder='big' , signed=True)   ---> -1

Expected behaviour

Expected to return -1
according to https://docs.python.org/3/library/stdtypes.html#int.from_bytes

Observed behaviour

returns 65535 which is equivalent to signed=False

Additional Information

No, I've provided everything above.

Code of Conduct

Yes, I agree

CANDIDATE · ISSUE

int.to_bytes and int.from_bytes implementations incomplete

closedby khoulihanopened 2014-06-11updated 2024-08-28

These methods have the following comments in them:

// TODO: Support long ints
// TODO: Support byteorder param
// TODO: Support signed param

I encountered this when trying to convert an int to big-endian bytes, but to_bytes returned little-endian bytes instead. from_bytes also apparently only supports little-endian bytes.

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied