1
0
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:
Erik Johansson
2018-04-09 22:02:30 +02:00
parent b7b67b0f08
commit dad5f59d4a
2 changed files with 13 additions and 0 deletions

View File

@@ -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;

View File

@@ -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