public class

EndianUtil

extends Object
java.lang.Object
   ↳ com.pnfsoftware.jeb.util.io.EndianUtil

Class Overview

Byte array to/from primitives with endianness support.

TODO: add support for float/double when needed.

Summary

Public Constructors
EndianUtil()
Public Methods
static int bigEndianBytesToInt(byte[] array)
static int bigEndianBytesToInt(byte[] array, int offset)
static long bigEndianBytesToLong(byte[] array, int offset)
static long bigEndianBytesToLong(byte[] array)
static short bigEndianBytesToShort(byte[] array)
static short bigEndianBytesToShort(byte[] array, int offset)
static int bytesToInt(byte[] array, int offset, ByteOrder order)
static long bytesToLong(byte[] array, int offset, ByteOrder order)
static long bytesToNumberSigned(ByteOrder bo, byte[] b)
Convert a byte array to a number, sign is extended to long, meaning that {0x88} will result in 0xFFFFFFFF_FFFFFF88L
static long bytesToNumberUnsigned(ByteOrder bo, byte[] b)
Convert a byte array to a number, sign is extended to long, meaning that {0x88} will result in 0x88L
static short bytesToShort(byte[] array, int offset, ByteOrder order)
static byte[] intToBEBytes(int v)
Convert a 32-bit integer to a big-endian encoded array of bytes.
static void intToBEBytes(int v, byte[] output, int offset)
static void intToBEBytes(int v, byte[] output)
static void intToLEBytes(int v, byte[] output, int offset)
static byte[] intToLEBytes(int v)
Convert a 32-bit integer to a little-endian encoded array of bytes.
static void intToLEBytes(int v, byte[] output)
static int littleEndianBytesToInt(byte[] array)
static int littleEndianBytesToInt(byte[] array, int offset)
static long littleEndianBytesToLong(byte[] array)
static long littleEndianBytesToLong(byte[] array, int offset)
static short littleEndianBytesToShort(byte[] array, int offset)
static short littleEndianBytesToShort(byte[] array)
static byte[] longToBEBytes(long v)
Convert a 64-bit integer to a big-endian encoded array of bytes.
static void longToBEBytes(long v, byte[] output)
static void longToBEBytes(long v, byte[] output, int offset)
static void longToLEBytes(long v, byte[] output)
static byte[] longToLEBytes(long v)
Convert a 64-bit integer to a little-endian encoded array of bytes.
static void longToLEBytes(long v, byte[] output, int offset)
static void numberToBytes(ByteOrder bo, long v, byte[] output)
Automatically convert a value depending on the byte array size.
static void shortToBEBytes(short v, byte[] output)
static void shortToBEBytes(short v, byte[] output, int offset)
static byte[] shortToBEBytes(short v)
Convert a 16-bit integer to a big-endian encoded array of bytes.
static void shortToLEBytes(short v, byte[] output)
static byte[] shortToLEBytes(short v)
Convert a 16-bit integer to a little-endian encoded array of bytes.
static void shortToLEBytes(short v, byte[] output, int offset)
static void swap(byte[] array, int offset, int size)
Flip the byte order of an array of bytes.
static void swap(byte[] array)
Flip the byte order of an array of bytes.
static void swapByGroup(byte[] array, int grpByteCount)
Flip the byte order of groups of bytes.
static int swapInt(int v)
Swap the byte ordering of an int.
static long swapLong(long v)
Swap the byte ordering of a long.
static short swapShort(short v)
Swap the byte ordering of a short.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public EndianUtil ()

Public Methods

public static int bigEndianBytesToInt (byte[] array)

public static int bigEndianBytesToInt (byte[] array, int offset)

public static long bigEndianBytesToLong (byte[] array, int offset)

public static long bigEndianBytesToLong (byte[] array)

public static short bigEndianBytesToShort (byte[] array)

public static short bigEndianBytesToShort (byte[] array, int offset)

public static int bytesToInt (byte[] array, int offset, ByteOrder order)

public static long bytesToLong (byte[] array, int offset, ByteOrder order)

public static long bytesToNumberSigned (ByteOrder bo, byte[] b)

Convert a byte array to a number, sign is extended to long, meaning that {0x88} will result in 0xFFFFFFFF_FFFFFF88L

public static long bytesToNumberUnsigned (ByteOrder bo, byte[] b)

Convert a byte array to a number, sign is extended to long, meaning that {0x88} will result in 0x88L

public static short bytesToShort (byte[] array, int offset, ByteOrder order)

public static byte[] intToBEBytes (int v)

Convert a 32-bit integer to a big-endian encoded array of bytes.

public static void intToBEBytes (int v, byte[] output, int offset)

public static void intToBEBytes (int v, byte[] output)

public static void intToLEBytes (int v, byte[] output, int offset)

public static byte[] intToLEBytes (int v)

Convert a 32-bit integer to a little-endian encoded array of bytes.

public static void intToLEBytes (int v, byte[] output)

public static int littleEndianBytesToInt (byte[] array)

public static int littleEndianBytesToInt (byte[] array, int offset)

public static long littleEndianBytesToLong (byte[] array)

public static long littleEndianBytesToLong (byte[] array, int offset)

public static short littleEndianBytesToShort (byte[] array, int offset)

public static short littleEndianBytesToShort (byte[] array)

public static byte[] longToBEBytes (long v)

Convert a 64-bit integer to a big-endian encoded array of bytes.

public static void longToBEBytes (long v, byte[] output)

public static void longToBEBytes (long v, byte[] output, int offset)

public static void longToLEBytes (long v, byte[] output)

public static byte[] longToLEBytes (long v)

Convert a 64-bit integer to a little-endian encoded array of bytes.

public static void longToLEBytes (long v, byte[] output, int offset)

public static void numberToBytes (ByteOrder bo, long v, byte[] output)

Automatically convert a value depending on the byte array size. If size if not a pow of two, the floor pow of two is filled (for example is size is 5, value will be considered as integer). byte[] of more than 8 bytes will be cropped. This function is a bridge to xxxToLEBytes and xxxToBEBytes functions.

Parameters
bo byteOrder to use for output value
v input value
output output representation of v, using the given ByteOrder

public static void shortToBEBytes (short v, byte[] output)

public static void shortToBEBytes (short v, byte[] output, int offset)

public static byte[] shortToBEBytes (short v)

Convert a 16-bit integer to a big-endian encoded array of bytes.

public static void shortToLEBytes (short v, byte[] output)

public static byte[] shortToLEBytes (short v)

Convert a 16-bit integer to a little-endian encoded array of bytes.

public static void shortToLEBytes (short v, byte[] output, int offset)

public static void swap (byte[] array, int offset, int size)

Flip the byte order of an array of bytes. This method does not create a new array.

Parameters
array the input/output array
offset start index
size number of elements to flip

public static void swap (byte[] array)

Flip the byte order of an array of bytes. This method does not create a new array.

Parameters
array the input/output array

public static void swapByGroup (byte[] array, int grpByteCount)

Flip the byte order of groups of bytes. This method does not create a new array.

Parameters
array byte array to change
grpByteCount number of bytes per group (2 for 16 bits, 4 for 32 bits, 8 for 64 bits)

public static int swapInt (int v)

Swap the byte ordering of an int.

public static long swapLong (long v)

Swap the byte ordering of a long.

public static short swapShort (short v)

Swap the byte ordering of a short.