Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Целочисленное взятие дробной части - возможно ли?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
AlexeyT
Есть необходимость реализации операции нахождения дробной части числа в целочисленном представлении:

]a*2-16[

где a - целое 18-битное число, оператор ]...[ означает выделение дробной части.

Прямая реализация ясна:

float res = float(a*pow(2.,-16)) - int(a*pow(2.,-16)), но затратна.

Нет ли способа для простой целочисленный реализации?
Эдди
Цитата
дробной части числа в целочисленном представлении

Перевести бы это на русский..
P.S. Еще ни разу ни на STM8, ни даже на STM32 не сталкивался с необходимостью вычислений с плавающей точкой. Все преобразования ADU→нормальные величины влегкую делаются при помощи двух операций: одного умножения и одного деления. Просто квант нужно правильный выбрать (например, сотые доли Вольта).
KnightIgor
Цитата(AlexeyT @ Apr 25 2015, 16:20) *
Есть необходимость реализации операции нахождения дробной части числа в целочисленном представлении:
]a*2-16[

]a*2-16[ = ]a/216[ = ]a/65536[ = a % 65536 = a & 0xFFFF.


AlexeyT
Цитата(KnightIgor @ Apr 25 2015, 20:04) *
]a*2-16[ = ]a/216[ = ]a/65536[ = a % 65536 = a & 0xFFFF.


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.