美文网首页
short与byte[]、int与byte[]互转(通过Byte

short与byte[]、int与byte[]互转(通过Byte

作者: zsfenggy | 来源:发表于2017-07-18 14:51 被阅读0次

    /**
    * 将int数值转换为占四个字节的Byte数组
    *
    * @param intVal int 要转换的int值
    * @param byteOrder ByteOrder 大小端模式
    * @return Byte[]
    */
    public static Byte[] int2Bytes(int intVal, ByteOrder byteOrder) {
    ByteBuffer buffer = ByteBuffer.allocate(4);
    buffer.order(byteOrder);
    buffer.asIntBuffer().put(intVal);
    byte[] array = buffer.array();
    return bytes2Bytes(array);
    }

    /**
     * 将int数值转换为占四个字节的byte数组
     *
     * @param intVal    int 要转换的int值
     * @param byteOrder ByteOrder 大小端模式
     * @return byte[]
     */
    public static byte[] int2bytes(int intVal, ByteOrder byteOrder) {
        ByteBuffer buffer = ByteBuffer.allocate(4);
        buffer.order(byteOrder);
        buffer.asIntBuffer().put(intVal);
        return buffer.array();
    }
    
    /**
     * 取四个字节的byte数组所代表的int值
     *
     * @param bytes     byte[]
     * @param byteOrder ByteOrder 大小端模式
     * @return int
     */
    private static int bytes2int(byte[] bytes, ByteOrder byteOrder) {
        ByteBuffer buffer = ByteBuffer.wrap(bytes);
        buffer.order(byteOrder);
        return buffer.getInt();
    }
    
    /**
     * 将short数值转换为占两个字节的Byte数组
     *
     * @param shortVal  short 要转换的short值
     * @param byteOrder ByteOrder 大小端模式
     * @return Byte[]
     */
    public static Byte[] short2Bytes(short shortVal, ByteOrder byteOrder) {
        ByteBuffer buffer = ByteBuffer.allocate(2);
        buffer.order(byteOrder);
        buffer.asShortBuffer().put(shortVal);
        byte[] array = buffer.array();
        return bytes2Bytes(array);
    }
    
    /**
     * 将short数值转换为占两个字节的byte数组
     *
     * @param shortVal  short 要转换的short值
     * @param byteOrder ByteOrder 大小端模式
     * @return byte[]
     */
    public static byte[] short2bytes(short shortVal, ByteOrder byteOrder) {
        ByteBuffer buffer = ByteBuffer.allocate(2);
        buffer.order(byteOrder);
        buffer.asShortBuffer().put(shortVal);
        return buffer.array();
    }
    
    /**
     * 取两个字节的byte数组所代表的short值
     *
     * @param bytes     byte[]
     * @param byteOrder ByteOrder 大小端模式
     * @return short
     */
    public static short bytes2short(byte[] bytes, ByteOrder byteOrder) {
        ByteBuffer buffer = ByteBuffer.wrap(bytes);
        buffer.order(byteOrder);
        return buffer.getShort();
    }
    
    /**
     * 将byte[]转为Byte[]
     *
     * @param array byte[]
     * @return Byte[]
     */
    public static Byte[] bytes2Bytes(byte[] array) {
        if (null == array) {
            return null;
        }
        Byte[] bytes = new Byte[array.length];
        for (int i = 0; i < array.length; i++) {
            bytes[i] = array[i];
        }
        return bytes;
    }

    相关文章

      网友评论

          本文标题:short与byte[]、int与byte[]互转(通过Byte

          本文链接:https://www.haomeiwen.com/subject/qxkhkxtx.html