初学者提问:一个关于运算符的问题
第一个程序:
public class MFirProg{
public static void main(String[] args){
byte num1=1;
num1=num1*2;
System.out.println("Num="+num1);
num1=num1*2;
System.out.println("Num="+num1);
num1=num1*2;
System.out.println("Num="+num1);
num1=num1*2;
System.out.println("Num="+num1);
num1=num1*2;
System.out.println("Num="+num1);
num1=num1*2;
System.out.println("Num="+num1);
num1=num1*2;
System.out.println("Num="+num1);
num1=num1*2;
System.out.println("Num="+num1);
}
}
第二个程序:
public class MFirProg{
public static void main(String[] args){
byte num1=1;
num1*=2;
System.out.println("Num="+num1);
num1*=2;
System.out.println("Num="+num1);
num1*=2;
System.out.println("Num="+num1);
num1*=2;
System.out.println("Num="+num1);
num1*=2;
System.out.println("Num="+num1);
num1*=2;
System.out.println("Num="+num1);
num1*=2;
System.out.println("Num="+num1);
num1*=2;
System.out.println("Num="+num1);
}
}
第一个程序编译的时候提示出错:num1=num1*2 可能损失精度
但第二个程序就可以编译运行
num1=num1*2和num1*=2不是等价的吗?
谁能解答一下啊?
谢谢阿