请会JAVA的各位学长帮我做下下面两个程序,感激不尽

2024-12-30 07:16:24
推荐回答(1个)
回答1:

1) TestCon.java

public class TestCon{
public static void main(String[] agrs){
byte b=(byte)1;
for(int i=1;i<12;i++){
System.out.println(i+" : "+(byte)(b*Math.pow(2,i)));
}
}
}
/* 原因解释一个byte,就是一个字节,有八位。初始为1,每次乘以2则相当于二进制左移操作。当第七次左移,数值为128,但是根据二进制编码规则,第八位是符号位,为1时表示负数所以为-128。(事实上,java中byte类型的范围就是-128到127)。8次以后不管左移多少次,都是0。
初始值:0000 0001 1
第一次:0000 0010 2
第二次:0000 0100 4
第三次:0000 1000 8

第四次:0001 0000 16
第五次:0010 0000 32
第六次:0100 0000 64
第七次:1000 0000 -128

第八次:0000 0000 0

*/

2)TestSun.java

import java.text.DecimalFormat;
public class TestSun{

public static double compute(double d){
return 4/3*Math.PI*Math.pow(d,3);
}
//865 000英里,地球的直径大约是7 600英里
public static void main(String[] args){
DecimalFormat df=new DecimalFormat("0.000E0");//格式化double输出形式小数点后3位
double d1=TestSun.compute(7600); // 地球体积
double d2=TestSun.compute(865000);//太阳
System.out.println("地球体积: "+df.format(d1));
System.out.println("太阳体积: "+df.format(d2));
System.out.println("太阳与地球体积比: "+df.format(d2/d1));
}
}