首页 > 编程知识 正文

java如何进行数据类型的转换,java自动类型转换例子

时间:2023-05-04 17:50:35 阅读:167670 作者:578

因为刚刚学习了强制性的打字转换,所以试着用自己的理解进行了总结。 如果有什么问题的话,请指出来评论。

int a=300;

byteb=(byte ) a;

system.out.println(a );

system.out.println(b;

执行结果如下。

如果强制转换超出byte存储范围的int类型数,转换后的值可能会发生变化。

原因: int型数据原本是以32位(最高位为符号位)的2进制存储在计算机内存中的,转移到强byte型后,只剩下该数据的后8位。

这下面的8位是变换后数量的补数,最高位是符号位。 如果最高有效位为1,则转换后的数量为负数。 需要在该补数上反过来加1,得到强旋转后的数。

ps:

1 .那么为什么最高位为1且为负呢?

因为最高位是符号位,符号位是0,是正数,符号位是1,是负数。

2 .那么,如果正的8位都是1,用刚才的方法会不会被误判为负数?

不,byte类型的正数最大为127,8位二进制文件为0111 1111,最高有效位为0,因此转换后的最高有效位为1,一定为负数。

3 .那么,向其他类型的强制转换满足上述说法吗?

满意! 例如:

long c=2147483651L; 大于//int型的最大值!

intd=(int ) c;

system.out.println(c );

system.out.println(d );

执行结果如下。

请参阅源代码:

公共类Java daily _2{

publicstaticvoidmain (string [ ] args ) {

int a=511;

byteb=(byte ) a;

system.out.println(a );

system.out.println(b;

long c=2147483651L; 大于//int型的最大值!

intd=(int ) c;

system.out.println(c );

system.out.println(d );

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。