Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 14.01.2013, 12:12  
woroba
Гражданин KAZUS.RU
 
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
woroba на пути к лучшему
По умолчанию Re: Как задефайнить число в степени?

Сообщение от Boba_spb Посмотреть сообщение
Мда .... Задача ...
И как токо в одном файле для разных платформ пишут программы ...

Не пробовали что нить типа #ifdef, #ifndef попользовать ?
Причем только в одном файле, и его использовать во множестве других?
Вы не поняли, степень в разных версиях программы меняется и соответственно должны меняться константы b,c
Пока вижу решение в лоб.

#if a=3
#define c 100
#else a=4
#define c 1000
и.т.д.
#endif
Реклама:
__________________
Не ошибается лишь тот, кто ни чего не делает!
woroba вне форума  
Непрочитано 14.01.2013, 12:19  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Как задефайнить число в степени?

Сообщение от Hives Посмотреть сообщение
realid компилер и сам увидит что выражение константное и подставит что надо
А если там степень 20, это что ж писать 5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5? Уродство какое-то.

Последний раз редактировалось realid; 14.01.2013 в 13:10.
realid вне форума  
Непрочитано 14.01.2013, 12:32  
ulasenko
Частый гость
 
Регистрация: 04.06.2009
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ulasenko на пути к лучшему
По умолчанию Re: Как задефайнить число в степени?

Я бы переписал в нормальную функцию.
Дирректива define - это определение макроса, то есть все, что в ней описано - копируется в код. Чем сложнее макрос и чем чаще он используется, тем больше объем исполняемого файла.
Предполагаю, что в первом варианте автор допустил ошибку(причина - ...), но это совсем НЕ значит, что эту ошибку следует поддерживать и далее.
ulasenko вне форума  
Непрочитано 14.01.2013, 13:24  
Aleksey_M
Прохожий
 
Регистрация: 14.01.2013
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Aleksey_M на пути к лучшему
По умолчанию Re: Как задефайнить число в степени?

Есть библиотека BOOST, там все это уже сделано за вас:
пример вызова:
Код:
#include ‹boost/math/special_functions/pow.hpp›

#define BASE 5
#define POWER 5

#define RESULT pow‹POWER›(BASE)

double result = RESULT;
НО! Использовать таким образом препроцессор довольно не рационально. Да и тащить весь буст ради одного вызова тоже глупо.

Вы можете просто написать
Код:
#include ‹math.h›

#define BASE 5
#define POWER 5

const double poweredNumber = pow(BASE, POWER);
Далее использовать эту константу. Компилятор увидит, что это константа и вычислит её значение на стадии компиляции, что вам и требуется.
Aleksey_M вне форума  
Непрочитано 14.01.2013, 13:31  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Как задефайнить число в степени?

Сообщение от realid Посмотреть сообщение
А если там степень 20, это что ж писать 5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5? Уродство какое-то.
Ну уж что так строго - а полет фантазии где.

#define a_ 5*5*5*5*5;
#define a a_*a_*a_*a_;
Boba_spb вне форума  
Непрочитано 14.01.2013, 13:31  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Как задефайнить число в степени?

Сообщение от woroba Посмотреть сообщение
#define a 5
#define b (надо 5 в степени a)
#define c (надо 10 в степени a)
А так не пробовали?
Код:
#define a 5
#define b 5^a
#define c 10^a
Yurkin2007 вне форума  
Непрочитано 14.01.2013, 13:39  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Как задефайнить число в степени?

Сообщение от Aleksey_M Посмотреть сообщение
Код:
#include ‹math.h›
#define BASE 5
#define POWER 5
const double poweredNumber = pow(BASE, POWER);
Вот это очень интересно !! Как он в const запишет результат pow() !!!
Boba_spb вне форума  
Непрочитано 14.01.2013, 13:39  
Ivan Panov
Частый гость
 
Регистрация: 02.02.2010
Адрес: Одесская обл.
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 24 раз(а) в 12 сообщении(ях)
Ivan Panov на пути к лучшему
По умолчанию Re: Как задефайнить число в степени?

Сообщение от Yurkin2007 Посмотреть сообщение
А так не пробовали?
Код:
#define a 5
#define b 5^a
#define c 10^a
Речь шла о компиляторе IAR а не о бейсике.

Почему Вы не хотите воспользоваться вариантом, указанным в документации?

Код:
#define  A      5
#define  B      10E7
#define  C      A*B      // A*10E7 == 5E7 == 50000000
Ivan Panov вне форума  
Непрочитано 14.01.2013, 13:40  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,801
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: Как задефайнить число в степени?

Сообщение от woroba Посмотреть сообщение
#if a=3
#define c 100
#else a=4
#define c 1000
и.т.д.
#endif
не
#else a=4
а
#elseif a==4
скорее всего.
И не
#if a=3
а
#if a==3
Где то так.

Последний раз редактировалось andries5; 14.01.2013 в 13:42.
andries5 вне форума  
Непрочитано 14.01.2013, 14:03  
Aleksey_M
Прохожий
 
Регистрация: 14.01.2013
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Aleksey_M на пути к лучшему
По умолчанию Re: Как задефайнить число в степени?

Сообщение от Boba_spb Посмотреть сообщение
Вот это очень интересно !! Как он в const запишет результат pow() !!!
Если интересно - проверьте. Возьмет и запишет. Но константа потому и константа , что запишет всего один раз.
Aleksey_M вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C и как определить четное число bass1981 Микроконтроллеры, АЦП, память и т.д 34 12.08.2012 01:16
Как 4 байта, принятых по USART превратить в число формата long int Black Jack Микроконтроллеры, АЦП, память и т.д 2 06.06.2012 21:32
Разложить число на символы ASCII 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 50 18.02.2011 14:57
Как в CVAVR вывести 3х-значное число на порты? code-by Микроконтроллеры, АЦП, память и т.д 26 23.03.2010 23:23
Автоматическое определение степени заряженности аккумулятора skywriter_ufa Источники питания и свет 15 23.02.2010 20:57


Часовой пояс GMT +4, время: 13:34.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot