В настоящее время я пытаюсь преобразовать шестнадцатеричную строку в двойную. В качестве фона я отправляю число, такое как 2.0 , через Bluetooth, чтобы получить массив байтов, например [0,0,0,64]
. Оттуда я попытался преобразовать его в шестнадцатеричный, используя hex.encode()
, и получил 00000040
.
На этом этапе я пытался найти метод или функцию в flutter / dart, чтобы поменять местами порядок байтов шестнадцатеричного числа и в основном преобразовать шестнадцатеричное в число с двойной точностью. Я пробовал функции дротика, такие как double.parse()
и double.tryParse()
, но, похоже, у него нет возможности добавить параметры системы счисления, чтобы обозначить, что строка является шестнадцатеричной, например int.tryParse()
.
В основном, я нужен метод преобразования шестнадцатеричного числа в двойное. Любая полезная помощь будет оценена.
Изменить: это код, с которым я пытаюсь работать с ByteData и сталкиваюсь с проблемами. Я использую этот пример и убедитесь, что я каким-то образом изменяю входящие байтовые массивы на двойные для последующего использования в вычислениях.
return StreamBuilder<List<int>>(
stream: characteristic.value,
initialData: characteristic.lastValue,
builder: (c, snapshot) {
final value = snapshot.data;
print('test1'); print(value);
print('test2'); var test2 = hex.encode(value); print(test2);
print('test3'); var test3 = ByteData(4); test3.setInt8(0, value); test3.getFloat32(0, [Endian endian = Endian.little]); print(test3);