Перейти к содержанию
    

Как в микроконтроллере преобразовать число float IEEE 754 в десятичное int?

Т.е. мы берем экспоненту в явном виде: data >> 23 & 0хFF  и отнимаем ее от 150 (?) и сдвигаем на это значение мантиссу & исходное число...

Осталось понять что есть 150

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, sidy сказал:

Осталось понять что есть 150

Возможно это как-то связано с тем что 150-127=23

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, dimka76 said:

Это местоположение экспоненты в битовом пространстве числа в формате с плавающей точкой.

Это не отменяет того факта, что в коде это магическая константа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В стандарте, в поле порядка, идёт (e + 127), где "e" в дополнительном коде, и чтобы вычислить нужное количество сдвигов для деления мантиссы, порядок надо вычесть из разрядности мантиссы, и поэтому, (150 – (e + 127)) = (23 – e).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е. из всего вышесказанного получается: чтобы получить число в требуемом десятичном виде мы мантиссу умножаем на 10 и полученное делим на порядок. Интересное свойство.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

41 minutes ago, sidy said:

Т.е. из всего вышесказанного получается: чтобы получить число в требуемом десятичном виде мы мантиссу умножаем на 10 и полученное делим на порядок. Интересное свойство.

умножение на 10 требуется для перехода к требуемому масштабу, смотрите первое сообщение

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...