[uquote="Chip_step",url="/forum/viewtopic.php?p=3990281#p3990281"]суть темы в том,
что-бы не использовать long int.[/uquote]
Преобразование в long int не используя long int?
это пипец ...
как хранить? ну, рассовать по карманам ...
с такими вопросами тебе НЕЛЬЗЯ заниматься программированием. твой мозг для этого не предназначен.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Ого ты нарванный!!! Тебе что тяжело по жизни? Что ты здесь на людей бросаешься? Кто тебя модератором поставил? Человек зашёл на форм спросить, мордер бросается, оскорбляет. Мой тебе совет - Обратись к врачу!
[uquote="Chip_step",url="/forum/viewtopic.php?p=3990281#p3990281"]суть темы в том,
что-бы не использовать long int.[/uquote]
Нахрена?! Ну это правда бред какой-то. "Не использовать long int, чтобы использовать long int". Студент что-ли не понявший задачу препода?
[uquote="Chip_step",url="/forum/viewtopic.php?p=3990317#p3990317"]счетчик инкрементируешь по 10000 - 20раз? Как хранить полученое число? [/uquote]
Интересно...
1. Каков у Вас стаж в программировании на Си? (и вообще в отношении работы с МК).
2. Это вариант "чистого Си" в АВР-студио или таки адуринья (ардуинья) в приложении к аттини 2313?
Собственно в Си нас не интересует "ГДЕ" - есть переменная и все - где ее компилятор положит - там ей и быть (остальное по мере солидного изучения можно выяснить и научиться применять).
Я честно не спец по "классическому Си" - с данным ЯВУ имею дело в рамках референса ардуиноIDE да еще малость "классическим ассемблером" балуюсь и то....
Ваши вопросы честно говоря ставят в тупик...
Это же классика начинающего - переменные, циклы, счетчики...
Тут, судя по вопросу, надо предварительно ускоренный курс Си пройти (хотя-бы в рамках адуринки)...
так ... набросок теста для адуринки-нано с индикацией на терминалке...
Спойлер
char flag=1;
long control=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
while(flag)
{
for (char cnt2=0; cnt2<=(20-1); cnt2++)
{
for (int cnt1=0; cnt1<=(10000-1); cnt1++)
{
control++; Serial.println(control, DEC);
}
}
flag=0;
}
while(1)
{
}
}
и то... мозговынос насчет - "а на Х/З ограничиваться INT??"...
Добавлено after 1 minute 38 seconds:
[uquote="Chip_step",url="/forum/viewtopic.php?p=3990478#p3990478"]Ого ты нарванный!!! Тебе что тяжело по жизни? Что ты здесь на людей бросаешься? Кто тебя модератором поставил? Человек зашёл на форм спросить, мордер бросается, оскорбляет. Мой тебе совет - Обратись к врачу![/uquote]
Вообще-то, УВАЖАЕМЫЙ КОТЕНОК это Вы "несколько несдержаны" в своих эмоциях "крутого начинающего" - посему и ответы... соответствующие...
Непохоже... До указателей тут еще оччень далеко - другое дело, судя по кристаллу, хочется размер кода/размер используемого ОЗУ уменьшить...
Хотя... там как-то все равно используется константа для сравнения.
А в случае "двойного кольца" - приятно выглядить только под ассемблером, да и то... надо аккуратно "уложить" обработку.
Чего там компилятор Си накрутит - проще таки в одном цикле с long упаковаться.
Или еще вариант (пробую ВАНГОВАТЬ С БУБНОМ) - хотим иметь 6-разрядный десятичный счетчик.
Т.е. 6 char размером в 0-9.
Тогда каждый инкрементируется от 0 до 9 с переносом в следующий разряд.
Однако этот примитив не для ЯВУ - там тот же long счетчик-накопитель преобразуется в соответствующий вид стандартной математикой.
Ну на крайний случай - делаем свою функцию преоборазования двоичного числа в двоично-десятичный эквивалент (а затем двоично-десятичное в сегментный код).
Ох уж эти КОТЯТА.... Даже сформулировать "хотелку" общедоступно и то...
Всё там прекрасно компилятор "накрутит". Задача работы с числами большей разрядности, нежели разрядность АЛУ, как бы не очень редкая, мягко говоря.
А если цель в экономии памяти, в Си вместо всяких двойных циклов и нескольких переменных есть упакованные структуры с битовыми полями.
Добавлено after 42 seconds:
Но всё это гадание на кофейной гуще, пока ТС не объяснит чего там от него хотят конкретно и не перестанет заниматься "программированием" методом тыка.
любопытно: а Chip_step может в поллитровую бутылку наливать до 200 литров воды? а в карман насыпать до 2т семок может? по идее, если в переменную char получится упихнуть число 200000, то это будет сулить значительные перемены в промышленности и экономике вообще... жаль, нобелевку по программирванию не дают.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
У ТС есть секретная функция, которая принимает тип char, обратите внимание, знаковый тип,
и какое-то условие этой функции, допустим - нужно всего один раз вызвать функцию, какая-то причина есть на это, секретная,
но вот диапазон значений типа char ТС не достаточно, long int подошел бы в самый раз,
так вот задача: впихнуть long int в функцию, которая принимает тип char за один заход.
Чуть ниже есть тема про генератор, а на выходе этой темы, умалчивается, шаговый двигатель оказался.
Видимо, суть в том, что нужно переместить шаговый двигатель на 200000 позиций за один раз, учитывается разгон, работа, и торможение.
Но этим ТС по чему то не хочет делиться со всеми, видимо коммерческий проект, вот и ходит вокруг да около, а вы думайте и гадайте.