早教吧作业答案频道 -->其他-->
关于+=复合运算//在C#与java中,byteb=100;b=b+100;编译通不过(类型转换造成),而byteb=100;b+=100;能编译通过,能否给出详细解释。还请高手赐教。
题目详情
关于+=复合运算// 在C#与java中, byte b=100; b=b+100; 编译通不过(类型转换造成),而 byte b=100; b+=100; 能编译通过, 能否给出详细解释。 还请高手赐教。
▼优质解答
答案和解析
这类题目,反编译一下就可以找到答案了 对下面的类进行反编译 public class test{ public static void main(String args[]){ byte a = 30; a +=40; int b = 20; b = b+41; } } 得到 C:\java> javap -c test Compiled from "test.java" public class test extends java.lang.Object{ public test(); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object." ":()V 4: return public static void main(java.lang.String[]); Code: 0: bipush 30 2: istore_1 3: iload_1 4: bipush 40 6: iadd 7: i2b 8: istore_1 9: bipush 20 11: istore_2 12: iload_2 13: bipush 41 15: iadd 16: istore_2 17: return } 由此可得出结论: b=b+100; 中,由于b+100后值已提升为int型,再赋给byte型当然不行 b+=100; 中,由反编译结果可以看出b+=100相当于b=(byte)(b+100) C#解释应该类似。
看了 关于+=复合运算//在C#与...的网友还看了以下:
高中数学向量部分(简单)OM=OA-OB+OC问M,A,B,C四点是否共面?OM,OA,OB,OC 2020-05-13 …
在半径为R的圆形铁皮上割去一个圆心角为θ的扇形,使剩下部分围成一个圆锥,θ为何值时圆锥的容积最大? 2020-05-13 …
有个成语叫“南橘北枳”,想问问还有没有和这个成语特别相似的成语呀?谢谢高手赐教有个成语叫“南橘北枳 2020-07-05 …
关于+=复合运算//在C#与java中,byteb=100;b=b+100;编译通不过(类型转换造 2020-07-17 …
请高手赐教:want后可加v-ing在Hedoesn'twantanybodypickinghim 2020-07-19 …
如何判断远近光灯是否是同一灯泡配置书上查不到,从外观是看得出有几个灯泡,但是是否远近光一体不会判断 2020-07-25 …
如何判断一个二元函数是否关于一条直线对称?如题,比如如何判断f(x,y)=xy是否关于直线y=-x 2020-07-25 …
如何判断一个区间如:10-18在0-2,2-9,9-24之间的算法小弟不才,想请各位高手赐教:我要求 2020-11-15 …
请赐教.众所周之,一块一千克的石头从1厘米高处和从10米高处落下来砸在手上的力肯定是不一样的,感觉肯 2020-11-26 …
平仄中的通是什么意思还有“出门求财财到手”是否出律请赐教 2020-11-27 …