强制转换(基本语法)


强制类型转换;

特点:代码需要进行特殊的格式处理,不能自动完成。

格式:范围小的类型,范围小的变量名 =(范围小的类型) 原本范围大的数据。

例如       int num =100L;

              int num = (int) 100L;  注意:右边那个数据(100L)不要超出左边类型的范围,否则会溢出。

 

 

 

例题1:

long强制转换为int类型;

int num2 =(int) 6000000000(L);

sout............(num2);

结果; 1705032704.

 

原因;int 的取值21亿,但60亿以经超出范围,所以溢出了,就导致结果是17亿多。

 

 

 

char zhifu = 'A';

sout..................(zhifu + 1);

结果:66

这是一个字符变量, 里面是大写字母A,66也是大写字母A被加了1后 才得到的66, 那原本就是65,

计算机的底层会用一个数字(二进制)来代表字符A, 就是65.

一但char类型进行了数字运算,那么字符就会按照一定的规则翻译成功为一个数字。

 

 

 

 

 

例题2:

double强制转换int类型;

int num3 = (int) 3.9;

sout....................(num3);

结果是  3.

原因;  int 是整数型的, 但3.9的int经过转换的话,那么只能保留整数3。

 

 

@@强制类型的转换一般不推荐使用,因有可能发生精度损失,数据溢出。

 

 

 

 

 

@@@   byte  short   char 这三类型都可以发生数学运算,例如加法" + ".

              byte  short   chat 这三类型在运算的时候。都会被首先提升成为  int 类型,然后再进行计算 

              boolean   类型不能发生数据类型转换。

   

 

 

byte +short    =>   int +int   => int

byte num = 40;

short num1 = 60;

short  + resulf = (short)(num +num1);

sout ........................(resulf);

结果; 100,   

 

int强制转换为 short: 注意必须保证逻辑上真实大小本来就没有超出short范围否则会发生数据溢出。

 

 

 

 

 

补充点。

------------------------------------------------

原:

char   zifu  = 'I';

sout ......................(zifu  + 0);

结果;49

 

简化后;

char   zifu   =   'c';                //左侧是int类型。 右边是char类型。

int   num  =   zifu;                //char   => int   确实是从小到大。

sout....................(num);      //发生了自动类型转变。

结果; 99。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM