Например TDA7294

Форум РадиоКот • Просмотр темы - HEX float to DEC
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 16:36:54

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: HEX float to DEC
СообщениеДобавлено: Пн янв 11, 2021 18:23:36 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Есть число float ( например 040C2240 )
нужно его перевести в десятичный вид
Подскажите пжлст как это сделать?

Меня больше интересует алгоритм, чем результат.
Заранее благодарен.

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HEX float to DEC
СообщениеДобавлено: Пн янв 11, 2021 19:02:52 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 1
Допустим речь у вас о IEEE 754. Прежде чем лезть в алгоритмы, нужно прочитать краткую теорию: https://ru.wikipedia.org/wiki/%D0%A7%D0 ... 1%82%D0%B8

Там и примеры есть. А алгоритм будет от языка зависеть, но для питона скажем там есть пример, можно по нему прикинуть так сказать.

Есть наглядный калькулятор онлайн: https://www.h-schmidt.net/FloatConverter/IEEE754.html
В последнее поле вводите ваше 0x040c2240 и видите раскладку вашего числа и его десятичное представление.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HEX float to DEC
СообщениеДобавлено: Пн янв 11, 2021 23:01:52 
Собутыльник Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 756
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Сообщений: 2893
Откуда: приходит весна?
Рейтинг сообщения: 0
Меня больше интересует алгоритм, чем результат.
А чем в алгоритме можно пользоваться? Плавающей арифметикой можно? Если да, то метод умножения на 10 должен помочь. Весьма простой алгоритм для начала.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: HEX float to DEC
СообщениеДобавлено: Вт янв 12, 2021 00:05:09 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Допустим речь у вас о IEEE 754. Прежде чем лезть в алгоритмы, нужно прочитать краткую теорию: https://ru.wikipedia.org/wiki/%D0%A7%D0 ... 1%82%D0%B8

Спасибо :beer:
Мне нужно было понять, каким стандартом нужно пользоваться... Раньше не сталкивался..
Возьму на вооружение IEEE754.

Там и примеры есть. А алгоритм будет от языка зависеть, но для питона скажем там есть пример, можно по нему прикинуть так сказать.

Ну я пока на бумажке считаю. Писать буду на асме, скорей всего....
Все зависит от микроконтроллера.. На stm32f407 можно и аппаратно этим заниматься. Вот: http://stm32asm.ru/407/f407_fpu.html

Есть наглядный калькулятор онлайн: https://www.h-schmidt.net/FloatConverter/IEEE754.html
В последнее поле вводите ваше 0x040c2240 и видите раскладку вашего числа и его десятичное представление.

Да их много. Я его видел, но что то не разобрался с ним...
Спасибо, объяснили.. :beer:
Я другим воспользовался - более понятным: http://floatingpoint.ru/online/float2dec.php


А чем в алгоритме можно пользоваться? Плавающей арифметикой можно?
Если да, то метод умножения на 10 должен помочь. Весьма простой алгоритм для начала.

Спасибо, вопрос больше имел теоретический характер, чем практический.
Вот тут то что нужно мне было.. https://ru.wikipedia.org/wiki/%D0%A7%D0 ... 1%82%D0%B8

В коде пока не думал как это сделать - рановато.
Нужно понять, те ли данные я вырвал из потока. :shock:
// Читаю поток данных. Выдергиваю, интересующие меня, пакеты. В этих пакетах несколько параметров... Возможно это совсем не те пакеты, так как расшифрованные параметры отличаются от истины...

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: HEX float to DEC
СообщениеДобавлено: Вт янв 12, 2021 09:20:31 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
Цитата:
Все зависит от микроконтроллера..

От языка больше. Даже где контроллер не умеет аппаратные плавающие запятые, языки высокого уровня позволяют работать с float. На Си это нативно делается, не важно есть FPU или нет. Без FPU просто подключается библиотека программной эмуляции, которая ес-но отжирает место и ресурсы, но позволяет использовать float как родной без проблем.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: HEX float to DEC
СообщениеДобавлено: Вт янв 12, 2021 21:27:19 
Потрогал лапой паяльник
Аватар пользователя

Карма: -14
Рейтинг сообщений: -43
Зарегистрирован: Ср дек 30, 2020 23:05:29
Сообщений: 340
Рейтинг сообщения: 0
возможно Вам требуются следующие операции:

packFloat() - пакуем float в 4 байта.
unpackFloat() - распаковываем float из 4 байтов.

Код:
void packFloat(void *buf, float x) {
    unsigned char *b = (unsigned char *)buf;
    unsigned char *p = (unsigned char *) &x;
#if defined (_M_IX86) || (defined (CPU_FAMILY) && (CPU_FAMILY == I80X86))
    b[0] = p[3];
    b[1] = p[2];
    b[2] = p[1];
    b[3] = p[0];
#else
    b[0] = p[0];
    b[1] = p[1];
    b[2] = p[2];
    b[3] = p[3];
#endif
}

Код:
float unpackFloat(const void *buf) {
    const unsigned char *b = (const unsigned char *)buf;
    uint32_t temp = 0;
    temp = ((b[0] << 24) |
            (b[1] << 16) |
            (b[2] <<  8) |
             b[3]);
    return *((float *) &temp);
}

Взято отсюда (и немного изменено):
https://stackoverflow.com/questions/399 ... site-bytes


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HEX float to DEC
СообщениеДобавлено: Сб янв 16, 2021 03:18:10 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Немного покопавшись выяснил, что нужный результат дает следующий калькулятор:
https://www.scadacore.com/tools/program ... -converter
например float BD10F575 = (-0.0353903361)
Видимо нужна реализация Float - Big Endian (ABCD)
Остальные калькуляторы нужного результата не давали.

Буду признателен, если научите рассчитывать данный результат на бумажке.
( конструкции на высоко-уровневых языках прошу не предлагать. хочу понять как реализовать математику.)
Хочу подпрограмму данного расчета организовать на ассемблере AVR.

В двойне буду признателен, если у кого есть готовая реализация. :beer:

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HEX float to DEC
СообщениеДобавлено: Сб янв 16, 2021 03:30:19 
Друг Кота
Аватар пользователя

Карма: 74
Рейтинг сообщений: 607
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3715
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Может эта статья будет полезна в плане алгоритмов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HEX float to DEC
СообщениеДобавлено: Сб янв 16, 2021 05:57:35 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Разобрался.
Ровно как в вики описано: https://ru.wikipedia.org/wiki/%D0%A7%D0 ... 1%82%D0%B8
Теперь на бумажке считать умею..
Осталось в коде реализовать.

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HEX float to DEC
СообщениеДобавлено: Сб янв 16, 2021 10:27:47 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 1
uwrtey, а почему вы решили, что калькулятор врет? Я бегло смотрел, вроде всё правильно показывал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HEX float to DEC
СообщениеДобавлено: Сб янв 16, 2021 12:07:40 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Странно. Сейчас проверил и вправду нормальный калькулятор.. Прошу прощения - наговариваю на него..
Видимо я где то затупил...

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 36


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y