运行结果:
java中的byte类型占用一字节,int类型占用2字节,long类型为四字节。当负数转为补码时,转换原理是:最高位(符号位)不变,其余位按位取反,然后末位加1。所以当int类型和long类型的的-127转为补码时,除了符号位外(负数符号位是1)和低八位外(低八位存储-127),其他位(原码全为0)会全变为1,所以最终的结果除了低八位外其他位全为1,转换为16进制的话每连续的每四位1就是一位f。正数由于符号位是0,且正数的补码就是原码,不用换算,int和long类型的127的高位全是0,转换为16进制也是0。