public class Multicast { public static void main(String[] args) { System.out.println((int) (char) (byte) -1); }}这个程序,-1转为byte还是-1,但是byte转为char会是多少呢?请高手指点
因为进行(char)转型的时候,(byte)-1仍然会被视作(int)-1这个就好像byte b = (byte) 1; b = (byte) b + 1;而不是 b = b + 1一样道理int型的-1,二进制是32个1,char取其中16个(0xffff)也就是'\uffff'再转回int型,前面补足16个0,变成0x0000ffff也就是65535
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货