Например TDA7294

Форум РадиоКот • Просмотр темы - преобразование типа char в long int
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 07:53:36

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 30 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: преобразование типа char в long int
СообщениеДобавлено: Ср мар 03, 2021 11:33:55 
Родился
Аватар пользователя

Зарегистрирован: Пн мар 01, 2021 05:19:23
Сообщений: 8
Рейтинг сообщения: 0
Чем не нравится long int? А вообще если нужны чары, то делай просто:

Код:
#pragma pack(push, 1)
union char_to_long {
  struct {
    char c1;
    char c2;
    char c3;
    char c4;
  } chars;
  long int value;
}
#pragma pack(pop)

И работай с этим как с отдельными символами, так и целиком с числом. Инкрементишь число, читаешь символы. Поля структуры ссылаются на один кусок памяти.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: преобразование типа char в long int
СообщениеДобавлено: Пт мар 05, 2021 11:48:49 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14052
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Некоторые размышления с точки зрения адуринки...
https://radiokot.ru/forum/viewtopic.php ... 6#p3991986
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: преобразование типа char в long int
СообщениеДобавлено: Ср мар 17, 2021 20:03:11 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: -1
Зарегистрирован: Пн окт 31, 2016 06:23:19
Сообщений: 93
Рейтинг сообщения: 0
Всем привет. Скажите как преобразовать тип данных char в long int?

вот пример:
Код:
#include <tiny2313a.h>
volatile char counter=0;


суть такова: переменную "counter" можно было бы инкрементировать до 200000.


1. Открыть исходный текст программы в текстовом редакторе.
2. Исправить тип в объявлении переменной с `char` на `long int`.
3. Заодно исправить грубую ошибку с типом возвращаемого значения функции `main`: не `void`, а `int`.
4. Сохранить исходный текст программы
5. Перекомпилировать программу
6. Готово!

Никакого другого способа, чтобы "можно было бы инкрементировать до 200000", нет и быть не может.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: преобразование типа char в long int
СообщениеДобавлено: Ср мар 17, 2021 20:49:49 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
KorbenDallas писал(а):
3. Заодно исправить грубую ошибку с типом возвращаемого значения функции `main`: не `void`, а `int`.
Ух ты, как на летел то, а не что, если в cvavr пишется именно void main(void)?
KorbenDallas писал(а):
6. Готово!
А что, если есть какая-то функция, которая принимает тип char, знаковый тип, а теперь попробуйте затрамбовать ваш long int в эту функцию и желательно за один заход, учитывая знак (условие, функцию нельзя переписывать)?


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: преобразование типа char в long int
СообщениеДобавлено: Ср мар 17, 2021 21:01:25 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: -1
Зарегистрирован: Пн окт 31, 2016 06:23:19
Сообщений: 93
Рейтинг сообщения: 0
а не что, если в cvavr пишется именно void main(void)?


Кем "пишется"? В cvavr, как и везде, пишется именно `int main`? А то, что какой-то компилятор традиционно закрывает глаза на `void main` не является поводом этим пользоваться. Зачем?

А что, если есть какая-то функция...


Всякие "а что если" к данному вопросу никакого отношения не имеют.

которая принимает тип char, знаковый тип, а теперь попробуйте затрамбовать ваш long int в эту функцию и желательно за один заход,


Никто даже и пытаться не будет заниматься подобной бессмыслицей. Если функция принимает тип char, то она принимает тип char. Ни о чем другой речи и быть не может. (По-прежнему, однако, не ясно, что это делает в этой теме и какое отношение имеет к заданному вопросу.)


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: преобразование типа char в long int
СообщениеДобавлено: Ср мар 17, 2021 22:04:16 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
KorbenDallas писал(а):
Если функция принимает тип char, то она принимает тип char. Ни о чем другой речи и быть не может. (По-прежнему, однако, не ясно, что это делает в этой теме и какое отношение имеет к заданному вопросу.)
вам пытались указать на то, что изменение типа переменной недостаточно, потому как переменная нового типа, переданная в неизмененную функцию (вы ведь не предлагали изменить исходник где-то еще), не даст никакого видимого результата - в функцию, которая ждет char даже из переменной long int больше 255 передать не выйдет.

короче, ваш совет - в топку: он хоть и простой, как три копейки, но и стоит не больше.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: преобразование типа char в long int
СообщениеДобавлено: Ср мар 17, 2021 23:29:37 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: -1
Зарегистрирован: Пн окт 31, 2016 06:23:19
Сообщений: 93
Рейтинг сообщения: 0
вам пытались указать на то, что изменение типа переменной недостаточно, потому как переменная нового типа, переданная в неизмененную функцию (вы ведь не предлагали изменить исходник где-то еще), не даст никакого видимого результата - в функцию, которая ждет char даже из переменной long int больше 255 передать не выйдет.


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

короче, ваш совет - в топку: он хоть и простой, как три копейки, но и стоит не больше.


Мой "совет" - единственно возможный ответ на поставленный вопрос, даже (!) если принимать во внимание некие выдуманные "функции". Поэтому не "в топку", а совсем наоброт: своим ответом выше я тему исчерпал и закрыл. Никаких других вариантов тут не будет.

Что, собственно, было понятно с самого начала, до моего появления в теме, но вот умудрились же на ровном месте нафлудить на две страницы белиберды...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: преобразование типа char в long int
СообщениеДобавлено: Чт мар 18, 2021 08:06:10 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
KorbenDallas писал(а):
Мой "совет" - единственно возможный ответ на поставленный вопрос, даже (!) если принимать во внимание некие выдуманные "функции".
вас совет из категории "не перебегай ЗДЕСЬ через дорогу - это опасно", хотя на самом деле правильный совет слово "здесь" должен исключить. а так да, в конкретно этом случае по-вашему сделать можно. но наивно полагать, что это чему-либо кого-либо может научить, т.е. исключить повторение проблемы в будущем.

и, кстати, если принимать во внимание некие выдуманные функции, то ваш совет красиво демонстрирует свою фтопочную сущность:
Код:
char var;
void foo(char x){
  printf("%d", x);
}

int main(void){
  var = 1;
  while(var++) foo(var);
}
по вашему совету изменение типа переменной var никак не изменит выводимые числа - они как были в пределах 0-255, так и останутся, хотя изменит их количество . но я мог бы этого и не говорить...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: преобразование типа char в long int
СообщениеДобавлено: Чт мар 18, 2021 10:54:03 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: -1
Зарегистрирован: Пн окт 31, 2016 06:23:19
Сообщений: 93
Рейтинг сообщения: 0
:shock:

Мне кажется, народ, что я разговариваю с софтверным ботом: он просто непрерывно дылдонит одно и то же по кругу из сообщения в сообщение, не обращая ни на что внимания.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: преобразование типа char в long int
СообщениеДобавлено: Чт мар 18, 2021 11:59:50 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
KorbenDallas писал(а):
непрерывно дылдонит одно и то же по кругу из сообщения в сообщение
потому что истина не должна меняться от сообщения к сообщению :) если кому-то она не видна сразу, приходится повторять до просветления :)))

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 30 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y