All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.icodegarden.nutrient.lang.util.ByteUtils Maven / Gradle / Ivy

The newest version!
package io.github.icodegarden.nutrient.lang.util;

import java.nio.ByteBuffer;

/**
 * 
 * @author Fangfang.Xu
 *
 */
public class ByteUtils {

	public static byte[] booleanToBytes(boolean b) {
		return b ? new byte[] { 0x01 } : new byte[] { 0x00 };
	}

	public static boolean bytesToBoolean(byte[] bytes) {
		return bytes[0] == 0x01;
	}
	
	public static byte[] charToBytes(char c) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(2);

		byteBuffer.putChar(c);

		return byteBuffer.array();
	}

	public static char bytesToChar(byte[] bytes) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(2);

		byteBuffer.put(bytes);

		byteBuffer.flip();
		return byteBuffer.getChar();
	}

	public static byte[] shortToBytes(short s) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(2);

		byteBuffer.putShort(s);

		return byteBuffer.array();
	}

	public static short bytesToShort(byte[] bytes) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(2);

		byteBuffer.put(bytes);

		byteBuffer.flip();
		return byteBuffer.getShort();
	}

	public static byte[] intToBytes(int i) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(4);

		byteBuffer.putInt(i);

		return byteBuffer.array();
	}

	public static int bytesToInt(byte[] bytes) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(4);

		byteBuffer.put(bytes);

		byteBuffer.flip();
		return byteBuffer.getInt();
	}

	public static byte[] longToBytes(long l) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(8);

		byteBuffer.putLong(l);

		return byteBuffer.array();
	}

	public static long bytesToLong(byte[] bytes) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(8);

		byteBuffer.put(bytes);

		byteBuffer.flip();
		return byteBuffer.getLong();
	}

	public static byte[] floatToBytes(float f) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(4);

		byteBuffer.putFloat(f);

		return byteBuffer.array();
	}

	public static float bytesToFloat(byte[] bytes) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(4);

		byteBuffer.put(bytes);

		byteBuffer.flip();
		return byteBuffer.getFloat();
	}

	public static byte[] doubleToBytes(double d) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(8);

		byteBuffer.putDouble(d);

		return byteBuffer.array();
	}

	public static double bytesToDouble(byte[] bytes) {
		ByteBuffer byteBuffer = ByteBuffer.allocate(8);

		byteBuffer.put(bytes);

		byteBuffer.flip();
		return byteBuffer.getDouble();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy