diff --git a/src/stdlib/src/lib.rs b/src/stdlib/src/lib.rs
index c83bcdd0445b5c0f4c8b4fd3edf3b5607a1dd1d7..d60ffc8a5abdcaf8abe5d019440646fd8265cac7 100644
--- a/src/stdlib/src/lib.rs
+++ b/src/stdlib/src/lib.rs
@@ -728,8 +728,9 @@ pub fn convert_integer(s: *const c_char, base: c_int) -> Option<(c_ulong, isize,
     let mut overflowed = false;
 
     loop {
-        // `-1 as usize` is -1
-        // `-1 as u8 as usize` is 255
+        // `-1 as usize` is usize::MAX
+        // `-1 as u8 as usize` is u8::MAX
+        // It extends by the sign bit unless we cast it to unsigned first.
         let val = unsafe { LOOKUP_TABLE[*s.offset(idx) as u8 as usize] };
         if val == -1 || val as c_int >= base {
             break;