黑马程序员技术交流社区
标题:
十六进制
[打印本页]
作者:
郭沐昌
时间:
2013-4-4 19:42
标题:
十六进制
本帖最后由 郭沐昌 于 2013-4-6 20:27 编辑
public class JoyOfHex{
public static void main(String[] args){
System.out.println(
Long.toHexString(0x100000000L + 0xcafebabe));
}
}
复制代码
该程序使用的是 long 型运算,它可以支持 16
位十六进制数,因此运算溢出是不可能的。
然而,如果你运行该程序,你就会发现它打印出来的是 cafebabe,并没有任何
前导的 1。这个输出表示的是正确结果的低 32 位,但是不知何故,第 33 位丢失
了。
作者:
刘胜寒
时间:
2013-4-4 20:14
等着高手在解答啊!!!
作者:
丁一
时间:
2013-4-5 10:36
System.out.println(Long.toHexString(0xcafebabeL));
System.out.println(Long.toHexString(0xcafebabe));
System.out.println(Long.toHexString(0x100000000L + 0xcafebabe));
System.out.println(Long.toHexString(0x100000000L + 0xcafebabeL));
0xcafebabeL 和0xcafebabe 是不同的值
上面的输出为
cafebabe
ffffffffcafebabe
cafebabe
1cafebabe
就是这个原因
作者:
黄玉昆
时间:
2013-4-6 18:47
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2