2014-02-28 102 views
1

大多数位位移的解决方案我已经看到了一个int转换为字节数组是这样的:INT转换为一个字节数组

return new byte [] { 
    (byte) ((i >> 24) & 0xFF), 
    (byte) ((i >> 16) & 0xFF), 
    (byte) ((i >> 8) & 0xFF), 
    (byte) (i & 0xFF); 
} 

为什么& 0xFF的?

+3

没有区别这是逐位和对位的其余部分变成0 –

+2

事实上,这可能不是必要的,如果你将被强制转换为'(字节)',因为演员做了一个隐含的'&0xFF'操作。 –

+0

可能的重复[如何按位与(和)在Java中工作?](http://stackoverflow.com/questions/17256644/how-does-the-bitwise-and-work-in-java) –

回答

0

& 0xFF是多余的,使得在给定的情况下

+0

同意,以及Graham Griffiths在他的评论中发表的其他问题的一些提示。 –