Java课后作业(一)

 1.

EnumTest.java运行结果:

 运行结论:1.s和t引用的是不同对象。2.枚举类型不是原始数据类型。3.枚举类型可以与字符串向转换。4.并且能输出它的所有的值。

2.

原码:最高位表示其正负,‘1’表示负,‘0’表示正。其他的表示一个数绝对值的二进制。

如:0的原码为:0000, -1的原码为:1001, 2的原码为:0010.

反码:当一个正数与一个负数相加时,若用原码会发生错误,如2+(-1)会等于(-3)。因此要引入反码。正数的反码依旧是它的原码,而负数的反码则是将它原码中除了最高位的1之外的所有位的1变成0,0变成1.

如:1的反码为:0001,-2的反码为:1101, 0的反码为:0000.

 

补码:但反码依然存在问题,当两个负数相加时会发生错误,如(-1)+(-2)为1110+1101=1011,结果为(-4)。因此引入补码。正数的补码依旧是原码,而负数的补码为其反码加1。

如:2的补码为:0010,(-3)的补码为1101, 0的补码为:0000.

java代码:

public class EnumTest {

public static void main(String[] args) {
int a=5;
System.out.println(a);
System.out.println(Integer.toBinaryString(a));
int b=~4;
System.out.println(b);
System.out.println(Integer.toBinaryString(b));
}

}

输出结果:

 结论:java采用的为补码。

 

3.

java具有“同名变量的屏蔽原则”,采取就近原则。

package test1;


public class Test {

private static int value=1;

public static void main(String[] args)
{
int value=2;
System.out.println(value);
}

}

输出结果为2.说明遵循就近原则。

4.

输出结果:

原因:

 数值在计算时往往需要大于它本当占有的比特数,所以计算完后会舍去后面的几位,因此会造成误差。

5.

原因:

第一次输出时,先输出句子,xy之间所写的加号优先为为字符串连接符,输出时是以此输出x与y的值。第二次输出时,先输出x+y,判断为x与y相加,输出x+y。

猜你喜欢

转载自www.cnblogs.com/sicilya/p/11551749.html