
Java:转16进制时常见的【byte[i] & 0xFF】是什么意思呢?
for(inti=0;i<b.length;i++){intv=b[i]&0xFF;Integer.toHexString(v);}byte[i]是8位二进制,0xFF也...
for (int i = 0; i < b.length; i++) {
int v = b[i] & 0xFF;
Integer.toHexString(v);
}
byte[i]是8位二进制,0xFF也是8位二进制,怎么与运算之后就变成32位赋给int了? 展开
int v = b[i] & 0xFF;
Integer.toHexString(v);
}
byte[i]是8位二进制,0xFF也是8位二进制,怎么与运算之后就变成32位赋给int了? 展开
展开全部
int v ; 这里不论你赋值给v什么值,v都会是四个字节的整数
所以,调用Integer.toHexString(v); 出来的还是32位的字符串
b[i] & 0xFF只是保证了v的前三个字节是0,只有最后一个字节有数
所以,调用Integer.toHexString(v); 出来的还是32位的字符串
b[i] & 0xFF只是保证了v的前三个字节是0,只有最后一个字节有数
更多追问追答
追问
您好,但是0xFF不就是1111 1111吗?这不是仅有一个字节吗?难道Java中16进制与int是等价的,都默认占4个字节?
追答
0xFF是个整数常数,只是用16进制形式表示出来了,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询