第16页 解惑6:多重转型
- 章节名:解惑6:多重转型
- 页码:第16页 2012-07-19 01:07:54
System.out.print((int)(chat)(byte) -1);输出结果是65535。 首先,从int到byte进行了窄化基本类型转换。然后从byte到char,这并非是简单的拓宽基本类型转换,而是一个拓宽并窄化基本类型转换。因为byte是有符号的类型,而char是无符号类型。接着,char到int,进行了拓宽基本类型转换。
有一条规则描述从较窄的整型转化为较宽的整型时符号扩展性为:如果最初的数值类型是有符号的,就执行符号扩展;如果它是char,那么不管它将要被转换为什么类型,都执行零扩展。 引自 解惑6:多重转型 从byte到char,扩展成为2^16 - 1 = 65535,再从char到int,依旧是65535。 另外位掩码"0xffff"用来取消类型拓宽转换时候的符号扩展。
5人阅读
雲端的鳥对本书的所有笔记 · · · · · ·
-
第12页 解惑4:初级问题
在long类型字面常量中,一定要用大写的L,绝对绝对不可以用小写的l,因为在某些字体中”l“和...
-
第14页 解惑5:十六进制的趣事
十进制字面常量都是正的,如果为负数,加上负号就可以。想写一个负的十进制数,不论是ing还是...
-
第16页 解惑6:多重转型
> 查看全部6篇
说明 · · · · · ·
表示其中内容是对原文的摘抄