Как преобразовать шестнадцатеричное число в двойное во Flutter / Dart - PullRequest
1 голос
/ 09 мая 2020

В настоящее время я пытаюсь преобразовать шестнадцатеричную строку в двойную. В качестве фона я отправляю число, такое как 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);
...