реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Целочисленное взятие дробной части - возможно ли?
AlexeyT
сообщение Apr 25 2015, 15:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 5-06-07
Пользователь №: 28 207



Есть необходимость реализации операции нахождения дробной части числа в целочисленном представлении:

]a*2-16[

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

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

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

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

Сообщение отредактировал AlexeyT - Apr 25 2015, 15:21
Go to the top of the page
 
+Quote Post
Эдди
сообщение Apr 25 2015, 15:46
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата
дробной части числа в целочисленном представлении

Перевести бы это на русский..
P.S. Еще ни разу ни на STM8, ни даже на STM32 не сталкивался с необходимостью вычислений с плавающей точкой. Все преобразования ADU→нормальные величины влегкую делаются при помощи двух операций: одного умножения и одного деления. Просто квант нужно правильный выбрать (например, сотые доли Вольта).

Сообщение отредактировал Эдди - Apr 25 2015, 15:47
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Apr 25 2015, 17:04
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(AlexeyT @ Apr 25 2015, 16:20) *
Есть необходимость реализации операции нахождения дробной части числа в целочисленном представлении:
]a*2-16[

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


Go to the top of the page
 
+Quote Post
AlexeyT
сообщение Apr 25 2015, 19:29
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 5-06-07
Пользователь №: 28 207



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




Сообщение отредактировал AlexeyT - Apr 25 2015, 19:30
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 03:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01563 секунд с 7
ELECTRONIX ©2004-2016