在java中反转int中字节的最佳方法

时间:2010-06-27 17:18:31

标签: java

在java中反转int中4个字节顺序的最佳方法是什么?

2 个答案:

答案 0 :(得分:43)

您可以使用Integer.reverseBytes

int numBytesReversed = Integer.reverseBytes(num);

还有Integer.reverse可以反转int

的每一位
int numBitsReversed = Integer.reverse(num);

java.lang.Integer API链接


其他原始类型的解决方案

上述方法还有一些LongCharacterShort版本,但有些版本特别缺失,例如: Byte.reverse。您仍然可以执行以下操作:

byte bitsRev = (byte) (Integer.reverse(aByte) >>> (Integer.SIZE - Byte.SIZE));

上面通过将byte aByte提升为int并将其反转,然后向右移动适当的距离,最后将其转回byte来反转float的位。

如果您想操纵double或{{1}}的位,可以使用Float.floatToIntBitsDouble.doubleToLongBits

另见

答案 1 :(得分:0)

我同意polygenelubricants的答案是最好的。但就在我点击之前,我有以下内容:

int reverse(int a){
   int r = 0x0FF & a;
   r <<= 8; a >>= 8;
   r |= 0x0FF & a;
   r <<= 8; a >>= 8;
   r |= 0x0FF & a;
   r <<= 8; a >>= 8;
   r |= 0x0FF & a;
   return r;
}

将输入右移,每次输出左移8位,并将最低有效字节与结果进行“或”运算。