类方法与实例方法:
答:(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)