diff options
-rw-r--r-- | py/objint_longlong.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/py/objint_longlong.c b/py/objint_longlong.c index b798c91cdf..4ab49f337d 100644 --- a/py/objint_longlong.c +++ b/py/objint_longlong.c @@ -54,7 +54,17 @@ const mp_obj_int_t mp_maxsize_obj = {{&mp_type_int}, MP_SSIZE_MAX}; #endif mp_obj_t mp_obj_int_from_bytes_impl(bool big_endian, size_t len, const byte *buf) { - mp_not_implemented(""); + int delta = 1; + if (!big_endian) { + buf += len - 1; + delta = -1; + } + + mp_longint_impl_t value = 0; + for (; len--; buf += delta) { + value = (value << 8) | *buf; + } + return mp_obj_new_int_from_ll(value); } void mp_obj_int_to_bytes_impl(mp_obj_t self_in, bool big_endian, size_t len, byte *buf) { |