package org.wcs.utils;

/**
 * 数据转换类
 */
public class Converter {

    /**
     * int转byte
     * @param value int值
     * @return byte值
     */
    public static byte toByte(int value) {
        if(value < Byte.MIN_VALUE || value > Byte.MAX_VALUE){
            throw new IllegalArgumentException("value is not in byte range");
        }
        return (byte) value;
    }

    /**
     * 二进制字符串转 byte
     * @param value 二进制字符串
     * @return byte值
     */
    public static byte toByte(String value) {
        int intValue = Integer.parseInt(value, 2);
        return toByte(intValue);
    }

    /**
     * byte转二进制字符串
     * @param value byte值
     * @return 转换过后的二进制字符串
     */
    public static String toBinaryString(byte value) {
        String binaryString = Integer.toBinaryString(value & 0xFF);
        return String.format("%8s", binaryString).replace(' ', '0');
    }
}
