Java 将int转换为字节数组
我见过的大多数将int转换为字节数组的位移位解决方案如下所示:Java 将int转换为字节数组,java,bit-shift,Java,Bit Shift,我见过的大多数将int转换为字节数组的位移位解决方案如下所示: return new byte [] { (byte) ((i >> 24) & 0xFF), (byte) ((i >> 16) & 0xFF), (byte) ((i >> 8) & 0xFF), (byte) (i & 0xFF); } 为什么&0xFF???&0xFF是冗余的,在给定的情况下没有区别,这是按位的,并且将其余的
return new byte [] {
(byte) ((i >> 24) & 0xFF),
(byte) ((i >> 16) & 0xFF),
(byte) ((i >> 8) & 0xFF),
(byte) (i & 0xFF);
}
为什么&0xFF???
&0xFF
是冗余的,在给定的情况下没有区别,这是按位的,并且将其余的位转换为0。实际上,如果您将强制转换为(字节)
,则可能没有必要,由于强制转换执行隐式的&0xFF
操作。可能重复的可能重复:如果希望使用big-endian。。。编写相同代码的较短方法:ByteBuffer.allocate(4).putInt(i).array()
同意,还有Graham Griffiths在评论中提出的另一个问题的一些提示。