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

 
 
> как "программно" можно разделить целое чило на вещественное, программное деление
addi
сообщение Sep 8 2006, 07:52
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



как "программно" можно разделить целое чило на вещественное, т.е обойти деление компилятора

Например
__saddr unsigned short adcres;
__saddr unsigned short res1;


void main()
{
adcres=0x017F ;
res1=adcres/2.8 ;
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
upc2
сообщение Sep 8 2006, 08:40
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Не понятно как обмауть компилятор,но можно так:

res1=abs(adcres/2.8) ;
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 8 2006, 08:47
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Чукча писатель, однако? На трех форумах один и тот же вопрос закопипастили, а ответы не читаем twak.gif
Go to the top of the page
 
+Quote Post
bav
сообщение Sep 11 2006, 11:37
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



можно сделать так:
res1=adcres*10;
res1 = res1/28;
Go to the top of the page
 
+Quote Post
_pv
сообщение Sep 11 2006, 12:36
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(bav @ Sep 11 2006, 18:37) *
можно сделать так:
res1=adcres*10;
res1 = res1/28;

а еще лучше деление заменить сдвигом
res1=adcres * ((1<<N)/2.8)
res1>>=N;
N выбирать исходя из требуемой точности и разрядности переменных не забывая про переполнения.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 29th June 2025 - 14:24
Рейтинг@Mail.ru


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