diff --git a/CHANGELOG.md b/CHANGELOG.md index 42bf8f963..367f3f236 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,13 +3,14 @@ ------------------------------------------------------------------------------------------------------------- -# 5.8.1.M1 (2022-05-12) +# 5.8.1.M1 (2022-05-16) ### 🐣新特性 * 【core 】 BooleanUtil增加toBooleanObject方法(issue#I56AG3@Gitee) * 【core 】 CharSequenceUtil增加startWithAnyIgnoreCase方法(issue#2312@Github) * 【system 】 JavaInfo增加版本(issue#2310@Github) * 【core 】 新增CastUtil(pr#2313@Github) +* 【core 】 ByteUtil新增bytesToShort重载(issue#I57FA7@Gitee) * ### 🐞Bug修复 * 【core 】 MapUtil.map对null友好,且修复了测试用例中分组问题(pr#614@Gitee) diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ByteUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ByteUtil.java index bd1053995..47c50199f 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/ByteUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/ByteUtil.java @@ -74,12 +74,25 @@ public class ByteUtil { * @param byteOrder 端序 * @return short值 */ - public static short bytesToShort(byte[] bytes, ByteOrder byteOrder) { + public static short bytesToShort(final byte[] bytes, final ByteOrder byteOrder) { + return bytesToShort(bytes, 0, byteOrder); + } + + /** + * byte数组转short
+ * 自定义端序 + * + * @param bytes byte数组,长度必须大于2 + * @param start 开始位置 + * @param byteOrder 端序 + * @return short值 + */ + public static short bytesToShort(final byte[] bytes, final int start, final ByteOrder byteOrder) { if (ByteOrder.LITTLE_ENDIAN == byteOrder) { //小端模式,数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中 - return (short) (bytes[0] & 0xff | (bytes[1] & 0xff) << Byte.SIZE); + return (short) (bytes[start] & 0xff | (bytes[start + 1] & 0xff) << Byte.SIZE); } else { - return (short) (bytes[1] & 0xff | (bytes[0] & 0xff) << Byte.SIZE); + return (short) (bytes[start + 1] & 0xff | (bytes[start] & 0xff) << Byte.SIZE); } }