mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-21 16:02:04 +02:00
Add method to convert to uint16 big-endian
This commit is contained in:
@@ -130,6 +130,13 @@ public class Converters {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static byte[] toUnsignedInt16Be(int value) {
|
||||||
|
byte[] data = new byte[2];
|
||||||
|
data[0] = (byte) ((value >> 8) & 0xFF);
|
||||||
|
data[1] = (byte) (value & 0xFF);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
public static long fromUnsignedInt32Be(byte[] data, int offset) {
|
public static long fromUnsignedInt32Be(byte[] data, int offset) {
|
||||||
long value = (long) (data[offset] & 0xFF) << 24;
|
long value = (long) (data[offset] & 0xFF) << 24;
|
||||||
value += (data[offset + 1] & 0xFF) << 16;
|
value += (data[offset + 1] & 0xFF) << 16;
|
||||||
|
@@ -88,6 +88,12 @@ public class ConvertersTest {
|
|||||||
assertEquals(0xfefc, Converters.fromUnsignedInt16Be(data, 1));
|
assertEquals(0xfefc, Converters.fromUnsignedInt16Be(data, 1));
|
||||||
assertEquals(0xfc10, Converters.fromUnsignedInt16Be(data, 2));
|
assertEquals(0xfc10, Converters.fromUnsignedInt16Be(data, 2));
|
||||||
assertEquals(0x107f, Converters.fromUnsignedInt16Be(data, 3));
|
assertEquals(0x107f, Converters.fromUnsignedInt16Be(data, 3));
|
||||||
|
|
||||||
|
data = new byte[]{(byte) 0xff, (byte) 0xfe};
|
||||||
|
assertArrayEquals(data, Converters.toUnsignedInt16Be(0xfffe));
|
||||||
|
assertEquals(0xffff,
|
||||||
|
Converters.fromUnsignedInt16Be(
|
||||||
|
Converters.toUnsignedInt16Be(0xffff), 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user