Hi Mike,

On 01/13/2012 09:51 PM, Mike Duigou wrote:
Really cool stuff Joe.

One initial note:

parseUnsigned*() returns a signed value that may not be able to hold the entire 
result. I would rather see a larger size be returned to be sure that subsequent 
operations don't have to be special cased for>  MAX_VALUE. At minimum some 
documentation describing the interpretation of negative return values is needed.

The intention of the fooUnsigned methods is that they interpret the 32 or 64 bit value as unsigned. So for example, for parseUnsigned, rather than recognizing strings representing values between -2^31 and (2^31)-1, the method recognizes values between 0 and (2^32)-1, mapping results between 2^31 and (2^32)-1 to what are usually thought of as the negative values.

I'll take another pass over the new javadoc to try to make this clearer.

Thanks,

-Joe


Mike

On Jan 13 2012, at 21:26 , Joe Darcy wrote:

Hello,

Polishing up some work I've had *almost* done for a long time, please review an 
initial take on providing library support for unsigned integer arithmetic:

    4504839 Java libraries should provide support for unsigned integer 
arithmetic
    4215269 Some Integer.toHexString(int) results cannot be decoded back to an 
int
    6322074 Converting integers to string as if unsigned

    http://cr.openjdk.java.net/~darcy/4504839.1/

For the first cut, I've favored keeping the code straightforward over trickier 
but potentially faster algorithms.  Tests need to be written for the unsigned 
divide and remainder methods, but otherwise the regression tests are fairly 
extensive.

To avoid the overhead of having to deal with boxed objects, the unsigned 
functionality is implemented as static methods on Integer and Long, etc. as 
opposed to introducing new types like UnsignedInteger and UnsignedLong.

(This work is not meant to preclude other integer arithmetic enhancements from 
going into JDK 8, such as add/subtract/multiply/divide methods that throw 
exceptions on overflow.)

Thanks,

-Joe



Reply via email to