在字节数组到字符串转换期间防止符号扩展

Prevent sign-extension during byte array to string conversion

示例代码中的 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