关于类型的转换
来源:互联网 发布:恒星寿命知乎 编辑:程序博客网 时间:2024/05/21 10:19
以下代码哪个是正确的?为什么?
a. byte b = 1 + 1;
b. byte b = 1; b = b + 1;
c. byte b = 1; b = b += 1;
d. byte b = 1; b = ++b;
这个题,那个是对的呢?
a中,b=2,byte中能容的下2,
b中,是二次运算,b要转换成int型,加1再赋值给b,精度丢失
c中,是一次运算,运算速度比b要快,隐藏了一个强制类型的转换,b= (byte)b+1;
d中,也隐藏了一个强制类型的转换
这里涉及到类型的转换,由低精度转换到高精度的话,没什么问题,但是由高精度转向低精度的话,就有问题了,会发生精度的丢失
所有的byte型、short型和char的值将被提升到int型。
整数默认的是int型,小数默认的是double型的,所以flout型一定要加上f
如果一个操作数是long型,计算结果就是long型;
如果一个操作数是float型,计算结果就是float型;
如果一个操作数是double型,计算结果就是double型。
自动类型提升
byte b = 3;
int x = 4;
x = x + b;//b会自动提升为int类型进行运算。
强制类型转换
byte b = 3;
b = b + 4;//报错
b = (byte)(b+4);//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。
如果要输出一个比较大的整数,在后面加上L,防止精度的丢失,因为整数默认的是int型,小数默认的是double型的
小数的话,后面加上f,证明是flout型。
0 0
- 关于类型的转换
- 关于vb的类型转换
- 关于struts2的类型转换
- 关于datatime类型的转换
- 关于类型转换的实验
- 关于uuid类型的转换
- 关于struts的类型转换
- 一篇关于CString类型转换的文章
- 关于强制类型转换的若干方法
- 关于指针强制类型转换的思考
- 关于类型转换的简单了解
- .NET 关于类型转换的是是非非
- 关于指针强制类型转换的思考
- 关于struts2中类型转换的认识
- c++的点点滴滴(1)----关于类型转换
- 关于日期类型转换的标准SQL
- 关于类型转换的一件小事
- 关于枚举的用法和类型转换
- 1分钟让别人喜欢你(二)
- 构建百万级高性能Web网站-6 JDK+Nginx+Tomcat的安装
- day12_面向对象的包+多线程
- 对C++中对象数组的认识
- 应用图标提示设置applicationIconBadgeNumber Attempting to badge the application icon but haven't
- 关于类型的转换
- IOS 模拟器 虚拟键盘如何显示出来
- SSH面试题
- CentOS下以RPM方式安装MySQL5.5
- android 添加button事件后 提示 view cannot be resolved to a type
- 2015,新的起点,新的目标
- Linux常用基础命令
- 计算1-n的和(不用for, while, goto, if, else, switch, case和三目运算符, 也不用乘除法)---利用pow函数
- yii中使用find之后,save总是报“SQLSTATE[HY000]: General error: 1449 The user specified as a definer ('root'@'%