byte 转 int 为什么要&0xFF?

byte a = -1;

int b = a;            //b = -1;

int c =a &&0xff;   //c = 255;

区别:计算机存储的是补码 ,byte a = -1;  //存储为1111 1111

强转会导致结果的值一样,所以int b = -1; //存储为11111111 11111111 11111111 1111 1111

&0xff,则会将前面的位数置0,保留最后一个字节的全部bit值,也就是00000000 00000000 00000000 11111111

原文地址:https://www.cnblogs.com/x-bing/p/7146346.html