Class UnsignedInts

Static utility methods pertaining to int primitives that interpret values as
unsigned (that is, any negative value x is treated as the positive value
2^32 + x). The methods for which signedness is not an issue are in Ints, as well
as signed versions of methods for which signedness is an issue.

In addition, this class provides several static methods for converting an int to a
String and a String to an int that treat the int as an unsigned
number.

Users of these utilities must be extremely careful not to mix up signed and unsigned
int values. When possible, it is recommended that the UnsignedInteger wrapper
class be used, at a small efficiency penalty, to enforce the distinction in the type system.

lexicographicalComparator

Returns a comparator that compares two arrays of unsigned int values lexicographically.
That is, it compares, using compare(int, int)), the first pair of values that follow
any common prefix, or when one array is a prefix of the other, treats the shorter array as the
lesser. For example, [] < [1] < [1, 2] < [2] < [1 << 31].