[New] Added addition functions to ByteHelper
This commit is contained in:
parent
603703f681
commit
9f53ce8a55
|
@ -20,6 +20,22 @@ package li.strolch.utils.helper;
|
||||||
*/
|
*/
|
||||||
public class ByteHelper {
|
public class ByteHelper {
|
||||||
|
|
||||||
|
public static boolean isBitSet(byte data, int position) {
|
||||||
|
return ((data >> position) & 1) == 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isBitNotSet(short data, int position) {
|
||||||
|
return ((data >> position) & 1) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte setBit(byte data, int position) {
|
||||||
|
return (byte) (data | (1 << position));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte clearBit(byte data, int position) {
|
||||||
|
return (byte) (data & ~(1 << position));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a long of the given byte array. They byte array must be 8 bytes long. The byte at index 0 is the highest
|
* Creates a long of the given byte array. They byte array must be 8 bytes long. The byte at index 0 is the highest
|
||||||
* byte
|
* byte
|
||||||
|
@ -56,7 +72,7 @@ public class ByteHelper {
|
||||||
public static int toInt(byte[] bytes) {
|
public static int toInt(byte[] bytes) {
|
||||||
|
|
||||||
if (bytes.length != 4)
|
if (bytes.length != 4)
|
||||||
throw new IllegalArgumentException("The input byte array for a long must have 4 values"); //$NON-NLS-1$
|
throw new IllegalArgumentException("The input byte array for an int must have 4 values"); //$NON-NLS-1$
|
||||||
|
|
||||||
return ((bytes[0] & 0xff) << 24) //
|
return ((bytes[0] & 0xff) << 24) //
|
||||||
| ((bytes[1] & 0xff) << 16) //
|
| ((bytes[1] & 0xff) << 16) //
|
||||||
|
@ -64,6 +80,51 @@ public class ByteHelper {
|
||||||
| ((bytes[3] & 0xff));
|
| ((bytes[3] & 0xff));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a short of the given byte array. They byte array must be 2 bytes long. The byte at index 0 is the highest
|
||||||
|
* byte
|
||||||
|
*
|
||||||
|
* @param bytes
|
||||||
|
* the bytes to convert to an integer
|
||||||
|
*
|
||||||
|
* @return the integer created from the bytes
|
||||||
|
*/
|
||||||
|
public static short toShort(byte[] bytes) {
|
||||||
|
|
||||||
|
if (bytes.length != 2)
|
||||||
|
throw new IllegalArgumentException("The input byte array for a short must have 2 values"); //$NON-NLS-1$
|
||||||
|
|
||||||
|
return (short) (((bytes[0] & 0xff) << 8) //
|
||||||
|
| ((bytes[1] & 0xff)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static short toShort(byte high, byte low) {
|
||||||
|
return (short) (((high & 0xff) << 8) | (low & 0xff));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println(asBinary(toShort((byte) 0x01, (byte) 0x03)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Formats the given byte array to a binary string, separating each byte by a space
|
||||||
|
*
|
||||||
|
* @param bytes
|
||||||
|
* the byte to format to a binary string
|
||||||
|
*
|
||||||
|
* @return the binary string
|
||||||
|
*/
|
||||||
|
public static String asBinary(byte[] bytes) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
for (byte b : bytes) {
|
||||||
|
sb.append(asBinary(b));
|
||||||
|
sb.append(StringHelper.SPACE);
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats the given byte to a binary string
|
* Formats the given byte to a binary string
|
||||||
*
|
*
|
||||||
|
@ -89,20 +150,36 @@ public class ByteHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats the given byte array to a binary string, separating each byte by a space
|
* Formats the given integer to a binary string, each byte is separated by a space
|
||||||
*
|
*
|
||||||
* @param bytes
|
* @param i
|
||||||
* the byte to format to a binary string
|
* the integer to format to a string
|
||||||
*
|
*
|
||||||
* @return the binary string
|
* @return the binary string
|
||||||
*/
|
*/
|
||||||
public static String asBinary(byte[] bytes) {
|
public static String asBinary(short i) {
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
for (byte b : bytes) {
|
sb.append(((i >>> 15) & 1));
|
||||||
sb.append(asBinary(b));
|
sb.append(((i >>> 14) & 1));
|
||||||
sb.append(StringHelper.SPACE);
|
sb.append(((i >>> 13) & 1));
|
||||||
}
|
sb.append(((i >>> 12) & 1));
|
||||||
|
sb.append(((i >>> 11) & 1));
|
||||||
|
sb.append(((i >>> 10) & 1));
|
||||||
|
sb.append(((i >>> 9) & 1));
|
||||||
|
sb.append(((i >>> 8) & 1));
|
||||||
|
|
||||||
|
sb.append(StringHelper.SPACE);
|
||||||
|
|
||||||
|
sb.append(((i >>> 7) & 1));
|
||||||
|
sb.append(((i >>> 6) & 1));
|
||||||
|
sb.append(((i >>> 5) & 1));
|
||||||
|
sb.append(((i >>> 4) & 1));
|
||||||
|
sb.append(((i >>> 3) & 1));
|
||||||
|
sb.append(((i >>> 2) & 1));
|
||||||
|
sb.append(((i >>> 1) & 1));
|
||||||
|
sb.append(((i >>> 0) & 1));
|
||||||
|
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue