当前位置: 代码迷 >> Java相关 >> [挑战]侮辱你的智商 之 HEX问题
  详细解决方案

[挑战]侮辱你的智商 之 HEX问题

热度:470   发布时间:2006-09-25 10:53:31.0
[挑战]侮辱你的智商 之 HEX问题
找出问题说明原因并且提出解决方案,缺一不可
public class Test {

public static void main(String[] args){
System.out.println( Long.toHexString(0x100000000L + 0xbbbbcccc) );
}

}
搜索更多相关的解决方案: 智商  HEX  挑战  

----------------解决方案--------------------------------------------------------
这个题目,0xbbbbcccc就已经是负数了,因为int值的正数最大值是0x7FFFFFFF
所以这个时候0xbbbbcccc的最左边位就成了1了,然后它要和long值相加,
按照规定,先转化成long再相加,转化的时候,符号位是要保留的
所以0xbbbbcccc变成的long值就是0xffffffffbbbbcccc
然后他们两加这个时候,其实也是0xffffffffbbbbcccc+0x0000000100000000=0x100000000bbbbcccc
long只有64位,所以取0x00000000bbbbcccc
所以最后的结果就是"bbbbcccc"


----------------解决方案--------------------------------------------------------
恩,不错,我又损失了500 5555555555

----------------解决方案--------------------------------------------------------
  相关解决方案