示例代码中的BYTEMASK标志将值转换为int时,可以防止对该值进行符号扩展。这个标志如何防止转换形式被符号扩展?
private final static int BYTEMASK = 0xFF;
private static String byteArrayToDecimalString(byte[] bArray) {
StringBuilder rtn = new StringBuilder();
for(byte b : bArray)
rtn.append(b & BYTEMASK).append(" ");
return rtn.toString();
}
最佳答案
正如其他人在评论中已经提到的那样,字节掩码不会阻止符号扩展,而是将其撤消。例如:
0x80 -- sign extend -> 0xffffff80 -- mask with 0xff -> 0x00000080
关于java - 在字节数组到字符串的转换过程中防止符号扩展,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48049672/