单字节读取时Integer.toHexString(b) 批量读取时Integer.toHexString(buf[i]&0xff)
为什么单字节读取不用&0xff 批量读取时却要用呢 不明白 求解
为什么单字节读取不用&0xff 批量读取时却要用呢 不明白 求解
2016-06-02
是这样的,
单字节读取时Integer.toHexString(b)
read 是无符号读取的,就是读取的时候,假如读取的是一个字节 例如 11111111 b的值就是 00000000 00000000
00000000 11111111;
批量读取时Integer.toHexString(buf[i]&0xff) 这个函数的参数是int类型的
buf 是一个字节数组。 假如buf[1]=11111111, 这个 会提升为 11111111 11111111 11111111 11111111,
这样两个int的字节码就不同了
buf[1]&0xff (00000000 00000000 00000000 11111111) 这样就一致了
举报