面试复习题

类方法与实例方法:

答:(1)类方法:static的方法,类方法可以通过类名.方法名进行调用

实例方法:必须new一个这个类的实例,通过实例调用。

(2)当父类的类方法定义为private时,对子类是不可见的,子类无法直接调用。

(3)子类具体的实例方法对父类是不可见的,无法直接调用,只能通过创建子类的一个实例对象,再进行调用。

(4)实例方法可以直接调用本类的实例方法。

 

变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000;

变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF。

则a-b的结果用10进制表示为多少?

答:(1)原码是符号位加上真值的绝对值,即用第一位表示符号位,其余位表示值。

(2)正数的反码是其本身。负数的反码是在原码的基础上,符号位不变,其余按位取反。

(3)正数的补码是其本身。负数的补码是在原码的基础上,符号位不变,其余按位取反,最后加1。

(4)计算机进行符号运算时,会以补码表示,符号位和数字位会一起参与运算。

a-b实际转换为[a-b]补=[a]补+[-b]补

a为1111(后面60个0),1开头,所以为一个负数;补码为1001(后面60个0)

b为0111(后面60个1),0开头,所以为一个正数;补码为其本身。

-b为1111(后面60个1),补码为1000(后面59个0,最后有个1)

所以1001(后面60个0) + 1000(后面59个0.最后有个1) = 0001(后面59个0,最后有个1),发生了溢出,比如采用双高位判别法处理溢出,则补码1001(后面59个0,最后有个1)转换为原码为1110(后面60个1),即-(7 *2的60次方+1)=-(2的62次方+2的61次方+2的60次方 +  1)

答案:-(2^62+2^61+2^60+1)

posted @ 2017-07-31 17:33  王毅2016  阅读(503)  评论(0编辑  收藏  举报