微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Dart 将两个小端的 Uint8 转换为 Uint16

如何解决Dart 将两个小端的 Uint8 转换为 Uint16

我是 dart 新手,但我需要使用两个 Uint8(蓝牙响应的一部分)并将它们转换为单个 Uint16。它们也是小端 (LSB),因此第二个值需要移动 8 个字节。我正在努力研究如何在 Dart 中做到这一点。

我已经尝试过类似的方法,但由于值太高,它并没有接近。

var list = new Uint8List(2);
list[0] = 56;
list[1] = 55;
int intValue = list[0] + (list[1] << 8);
Uint16 int16Value = Uint16(intValue);
print(int16Value);

非常感谢。

解决方法

您可以从列表中获取 ByteDataByteData 具有各种用于更改字节顺序和获取不同整数类型的函数,更多 here

var data = list.buffer.asByteData();
print(data.getUint16(0,Endian.little));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。