Java语言基础(七)

                      Java语言基础(七)

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

一.自动类型转换

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

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

        

     

 

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

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

 

              

 

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

        

      

 

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

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

       

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

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

 

        

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

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

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

 

                            

 

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

                                    

           

 

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

                           

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

        

            

 

           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

         

原文地址:https://www.cnblogs.com/codeOfLife/p/3657709.html