找出错误:类型转换
来源:互联网 发布:广东省数据统计局 编辑:程序博客网 时间:2024/05/09 17:52
1、面试题:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
b=b1+b2;//错误:这个是类型提升,所以出错;,,
b1和b2是byte型在计算的时候先升级到int型,
再转换成byte型出错
b=3+4;//正确:常量,先将结果计算出来,
再看结果是否在byte类型内,如果在就不报错
2、练习题:
byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?
有问题:因为byte的范围在-128~127而不在130不在此范围内,所以报错
修改:我们可以使用强制类型转换
byte b=(byte) 130;
结果:-126;
分析过程:
我们要想知道结果是什么,就应该知道是如何进行计算的。
而我们又知道计算机中数据的运算都是补码进行的。
而要得到补码,首先要计算出数据的二进制。
A:获取130这个数据的二进制。
00000000 00000000 0000000010000010
这是130的原码,也是反码,还是补码。
B:做截取操作,截成byte类型的了。
10000010
这个结果是补码。
C:已知补码求原码。
符号位 数值位
补码: 1 0000010
反码: 1 0000001
原码: 1 1111110
变量相加会首先看类型问题,最终将结果赋值的时候也会考虑类型问题。
常量相加首先看结果,然后看结构是否在赋值的数据范围内,如果不在,才报错。
0 0
- 找出错误:类型转换
- 类型转换错误
- sprintf错误以及类型转换
- Flex强制类型转换错误
- CallFuncN出现类型转换错误
- android ClassCastException 类型转换错误
- 类型转换、输入与错误
- Struts2 类型转换错误相关。
- Struts2类型转换----常规类型,自定义类型,错误处理
- Struts2类型转换(一)----常规类型,自定义类型,错误处理
- spring mvc int 类型转换错误
- oracle之时间类型转换错误
- Flex Module中 类型转换错误
- struts2自定义类型转换错误的消息
- 百度地图的application类型转换错误
- 关于setLayoutParams的类型转换错误
- 当AOP代理遇上类型转换错误
- selenium的中文文字类型转换错误
- 四、选区的编辑
- 五、历史工具
- 六、画笔与橡皮擦
- 七、油漆桶填充
- 错误:ArrayIndexOutOfBoundsExcep…
- 找出错误:类型转换
- arm-linux-gcc
- java中float类型数据的存储
- java面试题:
- java面试题:
- python __str__(),__dir__(),__doc__
- java知识点
- java collection
- java(对象调用内存图)