Страница 1 из 2
преобразование типа char в long int
Добавлено: Вт мар 02, 2021 12:36:05
Chip_step
Всем привет. Скажите как преобразовать тип данных char в long int?
вот пример:
Код: Выделить всё
#include <tiny2313a.h>
volatile char counter=0;
void main(void)
{
while (1)
{
counter++;
if(counter>=200000){counter=0;}
}
}
суть такова: переменную "counter" можно было бы инкрементировать до 200000.
Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 14:48:08
Starichok51
объявить её long int, а не char.
char - это 1 байт, не более 255.
Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 14:55:01
Chip_step
суть темы в том,
что-бы не использовать long int.
Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 15:33:17
BOB51
Сделать многоуровневый счетчик.

Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 15:42:54
Chip_step
Пример в студию

Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 15:43:57
Reflector
[uquote="Chip_step",url="/forum/viewtopic.php?p=3990281#p3990281"]суть темы в том,
что-бы не использовать long int.[/uquote]
Преобразование в long int не используя long int?
Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 15:47:08
BOB51
[uquote="Chip_step",url="/forum/viewtopic.php?p=3990311#p3990311"]Пример в студию

[/uquote]
кольцо до 10000 (int)
кольцо до 20 (char)

Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 15:54:00
Chip_step
счетчик инкрементируешь по 10000 - 20раз? Как хранить полученое число?

Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 16:03:31
Starichok51
это пипец ...
как хранить? ну, рассовать по карманам ...
с такими вопросами тебе НЕЛЬЗЯ заниматься программированием. твой мозг для этого не предназначен.
Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 16:13:45
Chip_step
Уважаемый, почему вы грубите здесь?
Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 19:05:13
Starichok51
я не грублю - я констатирую факт.
Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 20:23:30
Chip_step
Ого ты нарванный!!! Тебе что тяжело по жизни? Что ты здесь на людей бросаешься? Кто тебя модератором поставил? Человек зашёл на форм спросить, мордер бросается, оскорбляет. Мой тебе совет - Обратись к врачу!
Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 20:51:59
NStorm
[uquote="Chip_step",url="/forum/viewtopic.php?p=3990281#p3990281"]суть темы в том,
что-бы не использовать long int.[/uquote]
Нахрена?! Ну это правда бред какой-то. "Не использовать long int, чтобы использовать long int". Студент что-ли не понявший задачу препода?
Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 21:00:54
BOB51
[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]
Вообще-то, УВАЖАЕМЫЙ КОТЕНОК это Вы "несколько несдержаны" в своих эмоциях "крутого начинающего" - посему и ответы... соответствующие...

Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 21:30:31
Dimon456
Скорее всего вопрос про указатели.
Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 21:49:12
BOB51
Непохоже... До указателей тут еще оччень далеко - другое дело, судя по кристаллу, хочется размер кода/размер используемого ОЗУ уменьшить...
Хотя... там как-то все равно используется константа для сравнения.
А в случае "двойного кольца" - приятно выглядить только под ассемблером, да и то... надо аккуратно "уложить" обработку.
Чего там компилятор Си накрутит - проще таки в одном цикле с long упаковаться.
Или еще вариант (пробую ВАНГОВАТЬ С БУБНОМ) - хотим иметь 6-разрядный десятичный счетчик.
Т.е. 6 char размером в 0-9.
Тогда каждый инкрементируется от 0 до 9 с переносом в следующий разряд.
Однако этот примитив не для ЯВУ - там тот же long счетчик-накопитель преобразуется в соответствующий вид стандартной математикой.
Ну на крайний случай - делаем свою функцию преоборазования двоичного числа в двоично-десятичный эквивалент (а затем двоично-десятичное в сегментный код).
Ох уж эти КОТЯТА.... Даже сформулировать "хотелку" общедоступно и то...

Re: преобразование типа char в long int
Добавлено: Вт мар 02, 2021 22:11:47
NStorm
Всё там прекрасно компилятор "накрутит". Задача работы с числами большей разрядности, нежели разрядность АЛУ, как бы не очень редкая, мягко говоря.
А если цель в экономии памяти, в Си вместо всяких двойных циклов и нескольких переменных есть упакованные структуры с битовыми полями.
Добавлено after 42 seconds:
Но всё это гадание на кофейной гуще, пока ТС не объяснит чего там от него хотят конкретно и не перестанет заниматься "программированием" методом тыка.
Re: преобразование типа char в long int
Добавлено: Ср мар 03, 2021 09:34:51
ARV
любопытно: а Chip_step может в поллитровую бутылку наливать до 200 литров воды? а в карман насыпать до 2т семок может? по идее, если в переменную char получится упихнуть число 200000, то это будет сулить значительные перемены в промышленности и экономике вообще... жаль, нобелевку по программирванию не дают.
Re: преобразование типа char в long int
Добавлено: Ср мар 03, 2021 11:28:29
Dimon456
Ну что вы так все.
У ТС есть секретная функция, которая принимает тип char, обратите внимание, знаковый тип,
и какое-то условие этой функции, допустим - нужно всего один раз вызвать функцию, какая-то причина есть на это, секретная,
но вот диапазон значений типа char ТС не достаточно, long int подошел бы в самый раз,
так вот задача: впихнуть long int в функцию, которая принимает тип char за один заход.
Чуть ниже есть тема про генератор, а на выходе этой темы, умалчивается, шаговый двигатель оказался.
Видимо, суть в том, что нужно переместить шаговый двигатель на 200000 позиций за один раз, учитывается разгон, работа, и торможение.
Но этим ТС по чему то не хочет делиться со всеми, видимо коммерческий проект, вот и ходит вокруг да около, а вы думайте и гадайте.
Re: преобразование типа char в long int
Добавлено: Ср мар 03, 2021 11:31:47
ARV
такая конспирология...
