文章列表
前文再继, 书接上一回:
疑惑从这里来, 答案自己想。
(1)多重转型:
public class Multicast{
public static void main (String[] args){
System.out.println((int)(char)(byte) -1);
}
}
答案肯定不会那么简单的 , 下面给点提示 :
首先, 转换顺序是从右到左的,也就是说从32位硬制转换成8位,再转成16位,最后转成32位;
然后,JAVA使用的是基于补码的二进制运算;
最后,很重要的一点,byte是一个有符号类型,char是无 ...
- 2009-07-14 00:11
- 浏览 575
- 评论(0)
谜题5:十六进制的趣事
下面的程序是对两个十六进制(hex)字面常量进行相加,然后打印出十六进制的结果。这个程序会打印出什么呢?
public class JoyOfHex{
public static void main(String[] args){
System.out.println(
Long.toHexString(0x100000000L + 0xcafebabe));
}
}
看起来很明显,该程序应该打印出1cafebabe。毕竟,这确实就是十六进制数字10000000016与cafeb ...
- 2009-07-14 00:01
- 浏览 833
- 评论(0)