blob: 378fbb1e6c9f700c67d5defed2e8566c1f2624d2 [file] [log] [blame]
package de.ids_mannheim.korap.util;
import java.util.*;
/**
* A collection of byte and byte array related
* utility functions.
*
* @author diewald
*/
public class KrillByte {
/**
* Convert an integer to a byte array.
*
* @param number
* The number to convert.
* @return The translated byte array.
*/
// Based on
// http://www.tutorials.de/java/228129-konvertierung-von-integer-byte-array.html
// CHECK: int2byte may be out of use
public static byte[] int2byte (int number) {
byte[] data = new byte[4];
for (int i = 0; i < 4; ++i) {
int shift = i << 3; // That's identical to i * 8
data[3 - i] = (byte) ((number & (0xff << shift)) >>> shift);
};
return data;
};
/**
* Convert a byte array to an integer.
*
* @param data
* The byte array to convert.
* @return The translated integer.
*/
// Based on
// http://www.tutorials.de/java/228129-konvertierung-von-integer-byte-array.html
public static int byte2int (byte[] data) {
return byte2int(data, 0);
};
/**
* Convert a byte array to an integer.
*
* @param data
* The byte array to convert.
* @param offset
* The byte offset (Not integer offset!).
* @return The translated integer.
*/
// Roughly based on
// http://www.tutorials.de/java/228129-konvertierung-von-integer-byte-array.html
public static int byte2int (byte[] data, int offset) {
offset += 3;
int number = 0;
for (int i = 0; i < 4; ++i)
number |= (data[offset - i] & 0xff) << (i << 3);
return number;
};
/**
* Return the unsigned value of a byte.
*
* @param data
* The byte.
*/
public static int unsignedByte (byte data) {
return (int) data & 0xFF;
};
};