|
@@ -223,22 +223,42 @@ public final class SysUtils
|
|
|
|
|
|
if (byteOrder == ByteOrder.BIG_ENDIAN) {
|
|
|
return (
|
|
|
- ((bytes[fromIdx+0] & 0xFF) << 24) |
|
|
|
- ((bytes[fromIdx+1] & 0xFF) << 16) |
|
|
|
- ((bytes[fromIdx+2] & 0xFF) << 8 ) |
|
|
|
- ((bytes[fromIdx+3] & 0xFF) << 0 )
|
|
|
+ ((bytes[fromIdx+0] & 0xFF) << 24) |
|
|
|
+ ((bytes[fromIdx+1] & 0xFF) << 16) |
|
|
|
+ ((bytes[fromIdx+2] & 0xFF) << 8 ) |
|
|
|
+ ((bytes[fromIdx+3] & 0xFF) << 0 )
|
|
|
);
|
|
|
}
|
|
|
return (
|
|
|
- ((bytes[fromIdx+3] & 0xFF) << 24) |
|
|
|
- ((bytes[fromIdx+2] & 0xFF) << 16) |
|
|
|
- ((bytes[fromIdx+1] & 0xFF) << 8 ) |
|
|
|
- ((bytes[fromIdx+0] & 0xFF) << 0 )
|
|
|
+ ((bytes[fromIdx+3] & 0xFF) << 24) |
|
|
|
+ ((bytes[fromIdx+2] & 0xFF) << 16) |
|
|
|
+ ((bytes[fromIdx+1] & 0xFF) << 8 ) |
|
|
|
+ ((bytes[fromIdx+0] & 0xFF) << 0 )
|
|
|
);
|
|
|
}
|
|
|
-
|
|
|
public static byte[] intToBytes(int value) {
|
|
|
// BIG_ENDIAN
|
|
|
return ByteBuffer.allocate(4).putInt(value).array();
|
|
|
}
|
|
|
+
|
|
|
+ public static int bytesToShort(byte[] bytes) {
|
|
|
+ return ByteBuffer.wrap(bytes).getShort();
|
|
|
+ }
|
|
|
+ public static int bytesToShort(byte[] bytes, int fromIdx, ByteOrder byteOrder) {
|
|
|
+
|
|
|
+ if (byteOrder == ByteOrder.BIG_ENDIAN) {
|
|
|
+ return (
|
|
|
+ ((bytes[fromIdx+0] & 0xFF) << 8) |
|
|
|
+ ((bytes[fromIdx+1] & 0xFF) << 0 )
|
|
|
+ );
|
|
|
+ }
|
|
|
+ return (
|
|
|
+ ((bytes[fromIdx+1] & 0xFF) << 8 ) |
|
|
|
+ ((bytes[fromIdx+0] & 0xFF) << 0 )
|
|
|
+ );
|
|
|
+ }
|
|
|
+ public static byte[] shortToBytes(short value) {
|
|
|
+ // BIG_ENDIAN
|
|
|
+ return ByteBuffer.allocate(2).putShort(value).array();
|
|
|
+ }
|
|
|
}
|