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了?
展开
 我来答
kaixingui2012
推荐于2017-09-18 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6450万
展开全部
int v ; 这里不论你赋值给v什么值,v都会是四个字节的整数
所以,调用Integer.toHexString(v); 出来的还是32位的字符串

b[i] & 0xFF只是保证了v的前三个字节是0,只有最后一个字节有数
更多追问追答
追问
您好,但是0xFF不就是1111 1111吗?这不是仅有一个字节吗?难道Java中16进制与int是等价的,都默认占4个字节?
追答
0xFF是个整数常数,只是用16进制形式表示出来了,
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式