Форум по микроконтроллерам: От Новичка - Форум по микроконтроллерам

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

От Новичка Математические операции

#1 Пользователь офлайн   valik3210 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 02 Июнь 11

Отправлено 18 Июнь 2011 - 02:03

Всем здрасти. Только познаю программирование использую софт CodeVisionAVR и ATtiny 2313. Вопрос: размер программной памяти у ATtiny 2313 2kB, одна математическая операция типа i=i*360/3906 после компилирование увеличивает объем файла на 400 байт, получается что 4-5 таких вычислений и конечный файл превысит максимально допустимы. Что не так или чего я недопонимаю???
0

#2 Пользователь офлайн   Alex 

  • Активный участник
  • PipPipPip
  • Группа: Администратор
  • Сообщений: 320
  • Регистрация: 08 Август 08
  • Пол:Мужчина
  • Город:http://forum.eldigi.ru/

Отправлено 18 Июнь 2011 - 10:58

Ну всё будет зависеть от типа данных, с которыми производите операции. А так, всё верно, 4-5 вычеслений и ....
А что Вы хотели ? Это Вам не компьютер :)
0

#3 Пользователь офлайн   valik3210 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 02 Июнь 11

Отправлено 18 Июнь 2011 - 11:11

Спасибо. А вы не подскажете вопрос по Си. Как подсчитать количество знаков в переменной и как выбрать к примеру 2-й знак слева?
0

#4 Пользователь офлайн   Alex 

  • Активный участник
  • PipPipPip
  • Группа: Администратор
  • Сообщений: 320
  • Регистрация: 08 Август 08
  • Пол:Мужчина
  • Город:http://forum.eldigi.ru/

Отправлено 18 Июнь 2011 - 12:10

О каких знаках идёт речь ? Не понятно...
0

#5 Пользователь офлайн   valik3210 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 02 Июнь 11

Отправлено 18 Июнь 2011 - 12:32

Пример: x=360; Надо выделить сотые, десятые и целые и записать их в "x","y","z"
Должно получиться:
x=3;
y=6;
z=0;
Не математическим способом.
0

#6 Пользователь офлайн   Alex 

  • Активный участник
  • PipPipPip
  • Группа: Администратор
  • Сообщений: 320
  • Регистрация: 08 Август 08
  • Пол:Мужчина
  • Город:http://forum.eldigi.ru/

Отправлено 18 Июнь 2011 - 23:20

Цитата

Не математическим способом.
Интересно, а каким ещё способом можно это сделать, как не математическим ? :)
0

#7 Пользователь офлайн   valik3210 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 02 Июнь 11

Отправлено 19 Июнь 2011 - 14:25

Ну к примеру на языке PHP можно сделать так: $rest = substr("abcdef", -1); // возвращает "f", На Си не могу такого найти, я только начал изучать. Хотя предложенный мною пример тоже наверно математичекий :)
0

#8 Пользователь офлайн   Alex 

  • Активный участник
  • PipPipPip
  • Группа: Администратор
  • Сообщений: 320
  • Регистрация: 08 Август 08
  • Пол:Мужчина
  • Город:http://forum.eldigi.ru/

Отправлено 19 Июнь 2011 - 19:34

Предложеный Вами пример работает со строкой, а точнее - урезает её и возвращает результат.
Причём тут число ? :)
Работа с числами в любом случае будет математической. Деление, вычиитание, остатки и т.д...
0

#9 Пользователь офлайн   valik3210 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 02 Июнь 11

Отправлено 19 Июнь 2011 - 23:29

Ясно. :)
0

#10 Пользователь офлайн   and40 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 25 Июнь 12

Отправлено 26 Июнь 2012 - 00:08

Я чайник в микроконтролерах.Мне бы хотелось узнать , как реализовать команду
ПРОПУСТИТЬ если Больше ;
ПРОПУСТИТЬ если Меньше ?
.
ПРОПУСТИТЬ если РАВНО и
ПЕРЕЙТИ на метку через brxx я уже видел различные версии.

Возможно здесь с флагами переноса , переполнения и тд нужно делать в паре с br-ами ? Но я еще не знаю окончательно такие штуки.Только читал о их существовании
Буду очень рад ответу
0

#11 Пользователь офлайн   witalka58 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 2
  • Регистрация: 05 Июнь 09

Отправлено 26 Июнь 2012 - 19:52

Просмотр сообщенияand40 (26 Июнь 2012 - 00:08) писал:

Я чайник в микроконтролерах.Мне бы хотелось узнать , как реализовать команду
ПРОПУСТИТЬ если Больше ;
ПРОПУСТИТЬ если Меньше ?
.
ПРОПУСТИТЬ если РАВНО и
ПЕРЕЙТИ на метку через brxx я уже видел различные версии.

Возможно здесь с флагами переноса , переполнения и тд нужно делать в паре с br-ами ? Но я еще не знаю окончательно такие штуки.Только читал о их существовании
Буду очень рад ответу


0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей