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

posted @ 2017-07-10 16:12  x-bing  阅读(488)  评论(0编辑  收藏  举报