int v = b & 0xFF; 这个是什么写法,什么意思。

int v = b & 0xFF; 这个是什么写法,什么意思。

问题描述:

for (byte b : src) {
            int v = b & 0xFF;
            String hv = Integer.toHexString(v);
            if (hv.length() < 2) {
                stringBuilder.append(0);
            }
            stringBuilder.append(hv);
        }

int v = b & 0xFF;
是位与,byte转int时,需要&0xff,补足前面的24位。因此如果byte是负数,转成int时可能会变成整数。