private static long flip(long a)
    {
        return a ^ Long.MIN_VALUE;
    }
A (self-inverse) bijection which converts the ordering on unsigned longs to the ordering on longs, that is,
{@code a <= b} as unsigned longs if and only if {@code flip(a) <= flip(b)} as signed longs.
protostuff-api/src/main/java/io/protostuff/UnsignedNumberUtil.java