在Java中byte类型数据在运算的问题
来源:互联网 发布:淘宝美国末日ps3 编辑:程序博客网 时间:2024/05/16 05:24
在Java中,byte类型数据在运算之前要转换成int类型数据。
比如:
byte a=1;
byte b=2;
byte c;
c=a+b; //这样是计算不出c,是错误的
c=a+1; //这样也是不能计算c的
c=64+1; //为什么这样就能计算c,在Java中这是什么原理啊?
运算符对基本类型的影响
当使用+、-、*、/、%运算符对基本类型进行运算时,遵循如下规则:
只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;
否则,只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;
否则,只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;
否则,两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。
原文来自:雨枫技术教程网 http://www.fengfly.com
原文网址:http://www.fengfly.com/plus/view-170775-1.html
c=a+b时,符合第四个项,a+b的结果将转为int类型,把int赋值给byte是不可以的
c=a+1时,同样符合第四项
至于c=64+1,64+1是个在编译时就可以确定的常量,而且范围没有超出byte的取值范围,这个关系式就相当于c=65,因而不会报错
比如:
byte a=1;
byte b=2;
byte c;
c=a+b; //这样是计算不出c,是错误的
c=a+1; //这样也是不能计算c的
c=64+1; //为什么这样就能计算c,在Java中这是什么原理啊?
运算符对基本类型的影响
当使用+、-、*、/、%运算符对基本类型进行运算时,遵循如下规则:
只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;
否则,只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;
否则,只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;
否则,两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。
原文来自:雨枫技术教程网 http://www.fengfly.com
原文网址:http://www.fengfly.com/plus/view-170775-1.html
c=a+b时,符合第四个项,a+b的结果将转为int类型,把int赋值给byte是不可以的
c=a+1时,同样符合第四项
至于c=64+1,64+1是个在编译时就可以确定的常量,而且范围没有超出byte的取值范围,这个关系式就相当于c=65,因而不会报错
- 在Java中byte类型数据在运算的问题
- java中byte类型数据的运算
- 在java中对byte类型的变量的运算方式
- 在java中int类型跟byte数组的转换
- 两个byte变量在参与运算时的类型提升问题
- Java中String类型和Byte类型的互换问题
- byte类型进行运算的问题。
- java中byte char short类型数据的操作说明
- java中byte[]转换成String类型的问题
- java中byte[]转换成String类型的问题
- java中byte[]转换成String类型的问题
- 在JAVA中怎么比较Double类型数据的大小?
- 在JAVA中怎么比较Double类型数据的大小?
- C#中byte类型运算
- 在条件运算符中使用可空类型出现的问题?
- java 基础类型对应的Object在+-><运算符中的问题
- Java中涉及byte、short和char类型的运算操作
- Java中涉及byte、short和char类型的运算操作
- 侵占营业款流程
- IPhone之播放系统声音
- 斐波那契数列算法分析
- IPhone之IO操作
- C++预处理命令#define宏(macro)展开的若干用法
- 在Java中byte类型数据在运算的问题
- MX233物理存储空间学习
- Android Codec 集成和 video Overlay
- 怎样使用orapwd新建口令文件
- 静态代码块(static block)
- gSOAP简单使用例子
- 贪婪算法之0/1背包问题+读数据结构算法与应用-C++语言描述
- LINQ to SQL
- android 资源引用的例子