Обсуждаем контроллеры компании Atmel.
Ответить

преобразование типа char в long int

Вт мар 02, 2021 12:36:05

Всем привет. Скажите как преобразовать тип данных 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

объявить её long int, а не char.
char - это 1 байт, не более 255.

Re: преобразование типа char в long int

Вт мар 02, 2021 14:55:01

суть темы в том,
что-бы не использовать long int.

Re: преобразование типа char в long int

Вт мар 02, 2021 15:33:17

Сделать многоуровневый счетчик.
8)

Re: преобразование типа char в long int

Вт мар 02, 2021 15:42:54

Пример в студию :)

Re: преобразование типа char в long int

Вт мар 02, 2021 15:43:57

суть темы в том,
что-бы не использовать long int.

Преобразование в long int не используя long int?

Re: преобразование типа char в long int

Вт мар 02, 2021 15:47:08

Пример в студию :)

кольцо до 10000 (int)
кольцо до 20 (char)
8)

Re: преобразование типа char в long int

Вт мар 02, 2021 15:54:00

счетчик инкрементируешь по 10000 - 20раз? Как хранить полученое число? :shock:

Re: преобразование типа char в long int

Вт мар 02, 2021 16:03:31

это пипец ...
как хранить? ну, рассовать по карманам ...
с такими вопросами тебе НЕЛЬЗЯ заниматься программированием. твой мозг для этого не предназначен.

Re: преобразование типа char в long int

Вт мар 02, 2021 16:13:45

Уважаемый, почему вы грубите здесь?

Re: преобразование типа char в long int

Вт мар 02, 2021 19:05:13

я не грублю - я констатирую факт.

Re: преобразование типа char в long int

Вт мар 02, 2021 20:23:30

Ого ты нарванный!!! Тебе что тяжело по жизни? Что ты здесь на людей бросаешься? Кто тебя модератором поставил? Человек зашёл на форм спросить, мордер бросается, оскорбляет. Мой тебе совет - Обратись к врачу!

Re: преобразование типа char в long int

Вт мар 02, 2021 20:51:59

суть темы в том,
что-бы не использовать long int.

Нахрена?! Ну это правда бред какой-то. "Не использовать long int, чтобы использовать long int". Студент что-ли не понявший задачу препода?

Re: преобразование типа char в long int

Вт мар 02, 2021 21:00:54

счетчик инкрементируешь по 10000 - 20раз? Как хранить полученое число? :shock:

Интересно...
1. Каков у Вас стаж в программировании на Си? (и вообще в отношении работы с МК).
2. Это вариант "чистого Си" в АВР-студио или таки адуринья (ардуинья) в приложении к аттини 2313?
:roll:
Собственно в Си нас не интересует "ГДЕ" - есть переменная и все - где ее компилятор положит - там ей и быть (остальное по мере солидного изучения можно выяснить и научиться применять).
Я честно не спец по "классическому Си" - с данным ЯВУ имею дело в рамках референса ардуиноIDE да еще малость "классическим ассемблером" балуюсь и то....
Ваши вопросы честно говоря ставят в тупик...
Это же классика начинающего - переменные, циклы, счетчики...
Тут, судя по вопросу, надо предварительно ускоренный курс Си пройти (хотя-бы в рамках адуринки)...
так ... набросок теста для адуринки-нано с индикацией на терминалке...

и то... мозговынос насчет - "а на Х/З ограничиваться INT??"...
:tea:

Добавлено after 1 minute 38 seconds:
Ого ты нарванный!!! Тебе что тяжело по жизни? Что ты здесь на людей бросаешься? Кто тебя модератором поставил? Человек зашёл на форм спросить, мордер бросается, оскорбляет. Мой тебе совет - Обратись к врачу!

Вообще-то, УВАЖАЕМЫЙ КОТЕНОК это Вы "несколько несдержаны" в своих эмоциях "крутого начинающего" - посему и ответы... соответствующие...
:wink:

Re: преобразование типа char в long int

Вт мар 02, 2021 21:30:31

Скорее всего вопрос про указатели.

Re: преобразование типа char в long int

Вт мар 02, 2021 21:49:12

Непохоже... До указателей тут еще оччень далеко - другое дело, судя по кристаллу, хочется размер кода/размер используемого ОЗУ уменьшить...
Хотя... там как-то все равно используется константа для сравнения.
А в случае "двойного кольца" - приятно выглядить только под ассемблером, да и то... надо аккуратно "уложить" обработку.
Чего там компилятор Си накрутит - проще таки в одном цикле с long упаковаться.
:dont_know:

Или еще вариант (пробую ВАНГОВАТЬ С БУБНОМ) - хотим иметь 6-разрядный десятичный счетчик.
Т.е. 6 char размером в 0-9.
Тогда каждый инкрементируется от 0 до 9 с переносом в следующий разряд.
Однако этот примитив не для ЯВУ - там тот же long счетчик-накопитель преобразуется в соответствующий вид стандартной математикой.
Ну на крайний случай - делаем свою функцию преоборазования двоичного числа в двоично-десятичный эквивалент (а затем двоично-десятичное в сегментный код).
Ох уж эти КОТЯТА.... Даже сформулировать "хотелку" общедоступно и то...
8)

Re: преобразование типа char в long int

Вт мар 02, 2021 22:11:47

Всё там прекрасно компилятор "накрутит". Задача работы с числами большей разрядности, нежели разрядность АЛУ, как бы не очень редкая, мягко говоря.
А если цель в экономии памяти, в Си вместо всяких двойных циклов и нескольких переменных есть упакованные структуры с битовыми полями.

Добавлено after 42 seconds:
Но всё это гадание на кофейной гуще, пока ТС не объяснит чего там от него хотят конкретно и не перестанет заниматься "программированием" методом тыка.

Re: преобразование типа char в long int

Ср мар 03, 2021 09:34:51

любопытно: а Chip_step может в поллитровую бутылку наливать до 200 литров воды? а в карман насыпать до 2т семок может? по идее, если в переменную char получится упихнуть число 200000, то это будет сулить значительные перемены в промышленности и экономике вообще... жаль, нобелевку по программирванию не дают.

Re: преобразование типа char в long int

Ср мар 03, 2021 11:28:29

Ну что вы так все.

У ТС есть секретная функция, которая принимает тип char, обратите внимание, знаковый тип,
и какое-то условие этой функции, допустим - нужно всего один раз вызвать функцию, какая-то причина есть на это, секретная,

но вот диапазон значений типа char ТС не достаточно, long int подошел бы в самый раз,

так вот задача: впихнуть long int в функцию, которая принимает тип char за один заход.

Чуть ниже есть тема про генератор, а на выходе этой темы, умалчивается, шаговый двигатель оказался.

Видимо, суть в том, что нужно переместить шаговый двигатель на 200000 позиций за один раз, учитывается разгон, работа, и торможение.
Но этим ТС по чему то не хочет делиться со всеми, видимо коммерческий проект, вот и ходит вокруг да около, а вы думайте и гадайте.

Re: преобразование типа char в long int

Ср мар 03, 2021 11:31:47

такая конспирология... :)))
Ответить