Вы можете использовать Integer.reverseBytes
:
int numBytesReversed = Integer.reverseBytes(num);
Также есть Integer.reverse
, который инвертирует каждый бит int
int numBitsReversed = Integer.reverse(num);
java.lang.Integer
API ссылки
Решение для других примитивных типов
Существуют также некоторые версии Long
, Character
и Short
вышеуказанных методов, но некоторые из них отсутствуют, например. Byte.reverse
. Вы все еще можете делать такие вещи:
byte bitsRev = (byte) (Integer.reverse(aByte) >>> (Integer.SIZE - Byte.SIZE));
Вышеприведенное обращает вспять биты byte aByte
, переводя его в int
и обращая его, а затем сдвигая вправо на соответствующее расстояние и, наконец, возвращая его к byte
.
Если вы хотите манипулировать битами float
или double
, есть Float.floatToIntBits
и Double.doubleToLongBits
, которые вы можете использовать.
Смотри также