|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
||||||||||||||||
Прочитать строку из буфера и преобразовать в int24.01.2014, 16:36. Показов 4614. Ответов 48
Метки нет (Все метки)
Добрый день уважаемые профессионалы!
Есть буфер. Получены данные из ком порта. в формате: 32 43 101 255 2 3 45 73 54 29 111 Как эти данные из строки преобразовать 1 байтовые числа и загнать в текстбокс? Естественно пробелы игнорировать. Что то уже голова пухнет.... со стороны микроконтроллера(МК) (он отправляет эти данные) я решил на си (очень геморройно решил ) прочитал каждый символ , игнорировал пробелы, перевел в число
0
|
||||||||||||||||
| 24.01.2014, 16:36 | |
|
Ответы с готовыми решениями:
48
Преобразовать строку в int Преобразовать строку в int Как преобразовать long int в строку |
|
|
|
| 28.01.2014, 23:55 | |
|
Я в написании программ для мк не очень, но вот вижу 2 момента. buffer у Вас типа char, а вы в него пытаетесь записать int. Да и самим этим int (те что temp) на мой взгляд пытаетесь присвоить дробные значения... Хотя может в мк такое возможно...
0
|
|
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
|
| 28.01.2014, 23:59 [ТС] | |
|
Я переменную int преобразовываю в 1 байтовое значение (перевожу в диапазон 1.....255) и копирую в символьную переменную. А как по другому сделать? По моему никак ... Дробные я не копирую, везде целые значения. Та если даже будут дробные - компилятор должен их отбросить.
0
|
|
|
|
|
| 29.01.2014, 00:00 | |
|
Если можно, покажите код полностью, я хоть в С и никак, но вроде синтаксис не очень отличен, попробую понять.
И да, если переменная типа int, ее потом при копировании в массив типа char не надо приводить к типу?
0
|
|
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
||||||
| 29.01.2014, 00:03 [ТС] | ||||||
|
Вот:
Кликните здесь для просмотра всего текста
Код еще очень сырой, половина блоков не функционирует.
0
|
||||||
|
|
||||||
| 29.01.2014, 00:10 | ||||||
|
Я так понял, у Вас вот в этой функции засада?
0
|
||||||
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
|
| 29.01.2014, 00:10 [ТС] | |
|
0
|
|
|
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
|
||
| 29.01.2014, 00:10 | ||
|
Как я понял что то типа float в котором есть число например 52,86 И его надо разбить на 2 цифры 52 и 86? Упс опоздал
0
|
||
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
||||
| 29.01.2014, 00:16 [ТС] | ||||
![]() Добавлено через 1 минуту Она int . число там до 1000 Я его делю на 10 - получаю целую часть. А остаток от деления - получаю десятые доли. Добавлено через 1 минуту ![]() Добавлено через 1 минуту То есть: 998 значение , температура будет = 99.8
0
|
||||
|
|
|
| 29.01.2014, 00:17 | |
|
Думаю, что дело в приведении типов. Не могу точно сказать где, не работал с мк, но мое мнение - что-то не так преобразовываете...
И я не нашел, как вы в однобайтный вариант данные преобразовываете. Я обычно беру значение и комбинирую его по "И" со значением 0хff. На выходе при любом варианте выше 0xff не получится.
0
|
|
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
|
| 29.01.2014, 00:23 [ТС] | |
|
0
|
|
|
|
|
| 29.01.2014, 00:28 | |
|
Типа того. Только обычно первое значение типа int
Вот: int x=0xfadb; byte y= Convert.ToByte(x & 0xff). На выходе у меня получается значение y = 0xdb. У меня такая необходимость постоянно, я отправляю на устройство посылку из байт, и по протоколу обмена последний байт - КС всей посылки. Вот я все элементы складываю и потом так в байт перегоняю.
0
|
|
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
|
| 29.01.2014, 00:30 [ТС] | |
|
Так у меня тоже так
![]() Только на Си . У Вас C# . Хотя от этого суть не меняется
0
|
|
|
|
|
| 29.01.2014, 00:33 | |
|
Ну да, суть та же. А основная проблема - нет отправки от мк или мк не принимает ваши посылки? И еще, порт мк в каких режимах работает (какие типы данных отправляет - принимает)? int, char, byte?
0
|
|
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
|||||||||||
| 29.01.2014, 00:38 [ТС] | |||||||||||
|
Прикол в том, что я подозреваю в кривости компилятор!
Так как , параллельно , я наблюдаю температуру на дисплее. И все норм отображается! так:
Так:
0
|
|||||||||||
|
|
|
| 29.01.2014, 00:44 | |
|
Точно уверены? В отладке там можно посмотреть? Я сейчас на шарпе типа начала Вашей функции накидаю.
Просто я уверен, что тут засада. У Вас значения переменных temp от 1 до 1000.
1
|
|
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
|||
| 29.01.2014, 00:48 [ТС] | |||
|
printf() может выводить char,int,float.... и т.д. Добавлено через 2 минуты int y=1000; char x; x = y/10; означает: поделить число 1000 на 10 и записать в переменную x. Добавлено через 1 минуту Завтра продолжу разбираться на свежую голову
0
|
|||
|
|
|||||||||||
| 29.01.2014, 01:17 | |||||||||||
|
Это я уже понял. Даже на шарпе пример накидал.
![]()
В принципе,и С++ выдает так же. ![]()
1
|
|||||||||||
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
||
| 29.01.2014, 01:20 [ТС] | ||
|
Я в глубине души догадываюсь где собака порылась Завтра проверю.Добавлено через 2 минуты А что выдает при отладке? 96 1 , 95 4, 34 9 .... и т.д. ?
0
|
||
|
|
|
| 29.01.2014, 01:21 | |
|
Ну да, только у меня в столбик, там перенос на сл. строку стоит. А так верно, все так.
1
|
|
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 80
|
||||||
| 29.01.2014, 01:30 [ТС] | ||||||
|
Когда под МК пишу , бывает и не так приходится писать
![]() Вот к примеру так:
Так как МК 8бит. Им выполнять умножение и деление очень трудно. Занимает много ресурсов. Приходится все делать при помощи вычитания и сложения
0
|
||||||
| 29.01.2014, 01:30 | |
|
Как преобразовать некорректную строку в int?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|