在读取16进制数 0x7fffffff时,buf[i]的值为-1,为什么
byte[] buf = new byte[8 * 1024]; int bytes = in.read(buf,0,buf.length); int j=1; for (int i = 0; i < bytes; i++){ if ((buf[i] & 0xff) <= 0xf){ //此处 如果没有进行与运算,直接打印buf[i]结果为-1 System.out.print("0"); } System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); if(j++ % 10 == 0){ System.out.println(); } }
文件的内容为 A B 0x7fffffff