-----------android培训、java培训、java学习型技术博客、期待与您交流!-----------
/*数据类型转换*/
class Demo
{
public static void main(String[] args)
{
byte b=3;
b=b+2;
System.out.println("b");
}
}
结果报错:损失精度,分析如下:
1st.byte b=3
——>3是int型,但系统会先判断3是不是在byte范围内(-128~127),在,所以int型的3可以放进byte类型的b中去,此条代码也就是初始化
2ndb=b+2——> b是byte型,2是int型,两者类型不同,一个占1个8位,另一个占4个8位,需要系统自动类型提升,最终结果为int型,占4个8位,而b是byte型,占1个8位,所以报错提示有损精度
3rd.在此就需要“强制转换”,——>b=(byte)(b+2)强制转换为byte类型再赋进b中
下面是正确的强制转换例子
class Demo1
{
public static void main(String[] args)
{
//byte b=129; //编译错误,因为129超过byte取值范围 -128~127
byte b=(byte)129;//强制类型转换
System.out.println(b);//保留后8位 10000001 01111111=-127
}
}
其中具体转换过程分析如下:
其最高位为1,即表示负数,在java中数据表现形式是三种即十进制,八进制,十六进制,在此需要将其转换为相应十进制,遵从负数二进制转换算法:取反,再加1,得出最终结果-127
注意:数据类型转换时,低位转高位——>数据类型提升;
高位转低位——>首先判断是否超过低位的取值范围,再做相应转换
-----------android培训、java培训、java学习型技术博客、期待与您交流!-----------
分享到:
相关推荐
b站黑马程序员java视频学习笔记
Javaweb基础全课程笔记,黑马程序员上课笔记,主要涉及前端 jsp和servlet等
正在自学黑马程序员Java全套,目前只学了Javase,接下来是Javaweb,把自己整理的笔记分享一下。
day01_Object类、常用API day02_Collection、泛型 day03_List、Set、数据结构、Collections day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda...Java基础小节练习题答案
观黑马程序员JAVA学习笔记
B站黑马程序员Python教程学习笔记
黑马程序员java培训就业班笔记:day10总结
集合—黑马程序员Java学习笔记
本压缩包包含很多java基础题,笔记,都是来自黑马论坛,为java学习者提供复习资料,同时帮助需要考入黑马的同学学习。
黑马程序员Java基础视频辅导班Day01上课笔记
Java基础 java学习笔记 Java Java基础Markdown学习笔记,可转换成PDF、Word等格式
黑马程序员Java基础视频辅导班课堂笔记总结Day08
IO—黑马程序员Java学习笔记.rar
黑马程序员java培训就业班笔记:day06总结
黑马程序员基础班精华笔记总汇
黑马程序员Java基础视频辅导班课堂笔记总结Day09
黑马程序员的学习笔记,java基础
2018年黑马程序员全套教程java基础第1天 jdk9教程,idea的使用等,java小白的最优之教程
黑马程序员java培训就业班笔记:day05总结