Just a guess without reading the code, the unused bit is probably to avoid complications from signed integers. If the sign bit is never set, signed and unsigned integers can store the same data.
Presumably to make them work with languages that don't recognize unsigned integers? For example Java...