mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-21 07:51:46 +02:00
Add method to convert to uint16 big-endian
This commit is contained in:
@@ -130,6 +130,13 @@ public class Converters {
|
||||
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) {
|
||||
long value = (long) (data[offset] & 0xFF) << 24;
|
||||
value += (data[offset + 1] & 0xFF) << 16;
|
||||
|
@@ -88,6 +88,12 @@ public class ConvertersTest {
|
||||
assertEquals(0xfefc, Converters.fromUnsignedInt16Be(data, 1));
|
||||
assertEquals(0xfc10, Converters.fromUnsignedInt16Be(data, 2));
|
||||
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
|
||||
|
Reference in New Issue
Block a user