飞镖将两个Uint8转换为一个Uint16



我正在构建一个应用程序,通过蓝牙从分光光度计读取数据。测量值以两个字节的形式发送,意味着要转换为一个无符号的16位整数。多亏了我用于蓝牙通信的库,这两个字节被转换为两个Uint8List。

我环顾四周,但没有找到任何解决办法。我在这里该怎么做?

我不在乎它是否漂亮。见鬼,如果你能提供一个使用黑魔法的解决方案,我会使用它。它唯一要做的就是做好它的工作,即使它很慢。我只需要取出三个Uint16,可接受的时间跨度大约是1秒,所以即使是最低效的解决方案也可以在这里完成。

您可以简单地使用二进制移位,这应该是非常高效的:

(list[0] << 8) + list[1]

演示:

var list = new Uint8List(2);
list[0] = 1;
list[1] = 1;
print((list[0] << 8) + list[1]);

最新更新