Java语言基础(七)

                      Java语言基础(七)

  今天在公司多呆了会,回来晚了

一.自动类型转换

在Java中,数据是可以转换的  例如可以将byte类型的赋给int类型的

这里希望你了解内存的变化,例如

    Java语言基础(七)

在这里,我想你应该知道十进制-1为什么是32位二进制1了吧

好好想想,如果想不起来,看看前面的,前面已经提到,实在不知道联系我

      

这里我们将int类型的 i 赋给long类型的,如下

     Java语言基础(七)

将int类型的 i 赋给long类型 l ,这时long类型 l 应该是64位二进制1

由于十进制-1是负数,所以将int转换成long时,用1来填充,看下面的例子

      Java语言基础(七)

int类型的 i 输出1,前面没有输出0,那是因为将0省略了

long也是,将int类型的i转成long时,是用0来填充的 ,但是省略了

基本数据类型转换有(自动类型转换)与(强制类型转换)

  1) 自动类型转换,小类型到大类型的转换

(发生符号位扩展,正数用0填充,负数用1填充) 自动类型转换会"隐含"发生

Java语言基础(七)

说明:大类型转小类新的,如果不用强制类型转换的话,会报错

          Java语言基础(七)

2) 强制类型转换(从大类型到小类型需要强制转换,这会造成精度损失或者溢出)

  将int类型i赋值300,并将其赋给byte类型的,这时输出的是44

    Java语言基础(七)

  300的二进制:

    1  0  0  1  0  1  1  0  0

      --------------------------------------  去掉前面的1,还有8位  (byte就占8位)

  所有44是这样来的, 44 =1×2^5+1×2^3+1*2^2

上一篇:「LOJ 121」「离线可过」动态图连通性「按时间分治 」「并查集」


下一篇:Child Process