Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Чт мар 28, 2024 19:42

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 4 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Помогите реализовать
СообщениеДобавлено: Вс окт 26, 2008 15:43 
Не в сети

Регистрация: Вс окт 26, 2008 15:24
Сообщения: 1
Как реализовать вычисление по такой формуле: perem=360/1024*N*0,5. Собственно говоря основная проблема как конвертировать десятичное 0,5 в hex. Ранее никогда не сталкивался с таким. Голову уже сломал. ПОМОГИТЕ.... ну пожалуйста.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Помогите реализовать
СообщениеДобавлено: Вс окт 26, 2008 16:18 
Не в сети

Регистрация: Вт окт 03, 2006 02:19
Сообщения: 68
Откуда: Иркутск
Mosfett писал(а):
Собственно говоря основная проблема как конвертировать десятичное 0,5 в hex. Ранее никогда не сталкивался с таким. Голову уже сломал. ПОМОГИТЕ.... ну пожалуйста.
ну во первых 0,5 если ты конечно имеешь ноль целых пять десятых это вовсе не десятичное число, а число с плавающей точкой... т.е. REAL... для вычислений используешь все те же инструкции только с перфиксом F(*F,/F и т.д.) для преобразования целого в реал FLT, для преобразования в целые FIX вроде, а вот зачем его переводить в hex?


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн окт 27, 2008 08:22 
Не в сети
Аватара пользователя

Регистрация: Пт сен 22, 2006 13:17
Сообщения: 175
Откуда: Novokuznetsk
а не проще ли будет вместо "*0,5" использовать "/2" ?


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн окт 27, 2008 08:56 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Во многих случаях когда встаёт необходимость использовать числа вроде 0,5 в hex, делаем вычисления с "5" предварительно увеличив другое число в формуле на 10, или потом результат делим на 10.

perem=360/1024*N*0,5
по другому будет выглядеть как perem=0,17578125*N такую задачьку в hex решить не просто, проще в REAL. ну а если всё-таки принципиально в hex, тогда придётся какие-то числа умножать на 100, 1000 и далее работать с результатом в программе не забывая что сдвинуто несколько знаков. При действиях с hex нужно не забывать, что в результате умножения можно превысить максимальное значение для этого числа. ну и если реально нужно пересчитывать какие-то значения в hex, чтобы не потерять точность вычисления, очерёдность действий в формуле нужно подбирать так чтобы при умножении не привысить максимальные значения, а при делении не потерять знаки.
т.е. должно выглядеть примерно так:
perem=360*5*N/1024 если N большое число
perem=360*5*N*1000/1024 если N малое число

ну а если цифры это константы, то вообще не парится,
perem=1758*N а далее в проге не забывать что результат сдвинут на 4 знака.


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

Часовой пояс: UTC + 3 часа (Russia: MSK)


Кто сейчас на конференции

Сейчас этот форум просматривают: в настоящее время на конференции нет зарегистрированных пользователей и гости: 6


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

Найти:
Переход:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3