标签:问题 int 32 char b1 一些 c1 byte
一句话,char,byte,short进行计算操作的时候,会先将它们转换成int类型,然后再进行计算。
所以比如
byte b1 = 3,b2 = 5;
byte b3 = b1 + b2;
会报错的,因为b1 + b2的结果是int类型,将这个结果赋值给byte类型的b3,需要进行强制转换。
所以正确的表达是:
byte b3 = (byte)(b1 + b2);
另外,比如System.out.println('2'+'2');,
这个语句的输出结果是100,因为char类型的2对应的数字是50.
public class Main {
public static void main(String[] args) {
char c1 = 65;
//c1 = c1+32; //报错,
//因为c1是char类型2位,
//32是int类型8位,所以c1+32最终的计算结果会是int类型,/
//但是c1定义是char类型,所以会出错。
//如果改成(char)(c1+32)就会没有问题
//c1 =(char)(c1+32);没有问题
c1 += 32;//也没问题,但是为什么呢
System.out.println(c1);
}
}
标签:问题,int,32,char,b1,一些,c1,byte 来源: https://www.cnblogs.com/ccoonngg/p/14804376.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。