java byte与int互相转换


一、Int2Byte

byte[] bytes = new byte[4];
for (int i = 0; i < 4; i++) {
    bytes[i] = (byte)(integer >>> (i * 8));
}

二、 Byte2Int

int i= (rno[0]<<24)&0xff000000|
       (rno[1]<<16)&0x00ff0000|
       (rno[2]<< 8)&0x0000ff00|
       (rno[3]<< 0)&0x000000ff;

int x = ((b[0] & 0xFF) << 24) | ((b[1] & 0xFF) << 16) |
        ((b[2] & 0xFF) <<  8) | ((b[3] & 0xFF) <<  0);

因为在Java里是有符号扩展, 并且byte(如b[0])在取出来后已经被转换成了int, 所以需要0xFF来转换一下。 看到有说法说是为了转换成无符号数,如一个byte为fe, 则实际表现为 ff ff ff fe, 而0xff则为00 00 00 ff, 因此即去掉了前面无用的部分。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM