日期:2014-05-20  浏览次数:20716 次

Long.toHexString是不是有个BUG?
long i=-1098324910;
System.out.println(Long.toHexString(i));
得到
ffffffffbe88e452
而我认为输出应该是be88e452,java没有无符号整数,我就用long来代替,但是Long.toHexString(i)当i是负数的时候,出来多了ffffffff是怎么回事?
------解决方案--------------------
因为long是64位 
------解决方案--------------------
long在计算机中也是用补数存储的啊
------解决方案--------------------
读API。

结果跟你的预期不符合不是bug,结果跟其Java DOC中写明的契约不符合才是bug。
------解决方案--------------------
引用:
读API。

结果跟你的预期不符合不是bug,结果跟其Java DOC中写明的契约不符合才是bug。


UP