Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 14.04.2013, 21:52  
stmfaq
Прописка
 
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
stmfaq на пути к лучшему
По умолчанию Преобразование строки в число

Даже не знаю правильно я сформулировал название темы или это должно называться по другому. Задача такая,в мк по UART поступили данные в таком формате 02,32,00 , и так далее, мне эти три байта нужно преобразовать в переменную со значением 23200. Какой способ сделать это максимально быстро? Мне для этого нужна функция atol() ?
Реклама:
stmfaq вне форума  
Непрочитано 14.04.2013, 22:08  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,841
Сказал спасибо: 2,531
Сказали Спасибо 11,764 раз(а) в 5,895 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Преобразование строки в число

Сообщение от stmfaq Посмотреть сообщение
Даже не знаю правильно я сформулировал название темы или это должно называться по другому. Задача такая,в мк по UART поступили данные в таком формате 02,32,00 , и так далее, мне эти три байта нужно преобразовать в переменную со значением 23200. Какой способ сделать это максимально быстро? Мне для этого нужна функция atol() ?
Неправильно (читать понятие "строка"). Это просто последовательность. Судя по написанному, налицо "позиционность" байтов. В этом случае первый байт умножить на 10000, к нему прибавить второй, умноженный на 100 и к сумме прибавить третий.
atol() это "ASCII-›Integer". В данном случае ASCII не пахнет, посему - неприменима.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 14.04.2013, 22:09  
raxp
Почётный гражданин KAZUS.RU
 
Регистрация: 28.05.2010
Сообщений: 1,118
Сказал спасибо: 150
Сказали Спасибо 604 раз(а) в 310 сообщении(ях)
raxp на пути к лучшему
По умолчанию Re: Преобразование строки в число

http://2programmer.ru/ci?start=17
__________________
Белорусский журнал «Радиолюбитель»
Youtube LaboratoryW
UR3QQJ
raxp вне форума  
Непрочитано 14.04.2013, 22:16  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,841
Сказал спасибо: 2,531
Сказали Спасибо 11,764 раз(а) в 5,895 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Преобразование строки в число

Сообщение от raxp Посмотреть сообщение
http://2programmer.ru/ci?start=17
Хотел сказать, что сдвиг в этом случае ошибочен, да притормозил - может запись постановки задачи ошибочна? Товарищ-то не вполне владеет понятиями... В общем, выбор правильного алгоритма - за ним.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 14.04.2013, 22:21  
stmfaq
Прописка
 
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
stmfaq на пути к лучшему
По умолчанию Re: Преобразование строки в число

Сообщение от akegor Посмотреть сообщение
Неправильно (читать понятие "строка"). Это просто последовательность. Судя по написанному, налицо "позиционность" байтов. В этом случае первый байт умножить на 10000, к нему прибавить второй, умноженный на 100 и к сумме прибавить третий.
atol() это "ASCII-›Integer". В данном случае ASCII не пахнет, посему - неприменима.
Ох и мудрено выходит, а по другому никак? а то это нужно делать на лету в потоке данных. Дело в том что эти данные уже подверглись одному преобразованию , они как раз и шли в ANSII кодировке ,было 30, 34, 33, 38, 30, 30, стало 04,38,00. Получается что мне нужно было перед первой трансформации применять atol() ?

Последний раз редактировалось stmfaq; 14.04.2013 в 22:23.
stmfaq вне форума  
Непрочитано 14.04.2013, 22:22  
KBH-I
Почётный гражданин KAZUS.RU
 
Аватар для KBH-I
 
Регистрация: 01.05.2009
Адрес: Коптево
Сообщений: 2,849
Сказал спасибо: 276
Сказали Спасибо 427 раз(а) в 274 сообщении(ях)
KBH-I на пути к лучшему
По умолчанию Re: Преобразование строки в число

Может, проще выйдет самому функцию написать?
KBH-I вне форума  
Непрочитано 14.04.2013, 22:24  
raxp
Почётный гражданин KAZUS.RU
 
Регистрация: 28.05.2010
Сообщений: 1,118
Сказал спасибо: 150
Сказали Спасибо 604 раз(а) в 310 сообщении(ях)
raxp на пути к лучшему
По умолчанию Re: Преобразование строки в число

...если данные поступили в виде '02,32,00', тогда удалить запятые, если действительно байтами или массивом байт, тогда сдвигом в старшие разряды.

Цитата:
Дело в том что эти данные уже подверглись одному преобразованию , они как раз и шли в ANSII кодировке ,было 30, 34, 33, 38, 30, 30, стало 04,38,00.
нам неведомо, приведите то, что на самом деле происходит.
__________________
Белорусский журнал «Радиолюбитель»
Youtube LaboratoryW
UR3QQJ

Последний раз редактировалось raxp; 14.04.2013 в 22:26.
raxp вне форума  
Непрочитано 14.04.2013, 22:30  
stmfaq
Прописка
 
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
stmfaq на пути к лучшему
По умолчанию Re: Преобразование строки в число

Сообщение от raxp Посмотреть сообщение
если действительно байтами или массивом байт, тогда сдвигом в старшие разряды.
Запятые поставил для ясности, на самом дели это массив данных полученных c UART.
Сообщение от raxp Посмотреть сообщение
нам неведомо, приведите то, что на самом деле происходит.
Получил по uart такой пакет 30 30 30 34 33 38 30 30 30 35 30 30 38 30 37 из него получилось 000438000500807
stmfaq вне форума  
Непрочитано 14.04.2013, 22:37  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,841
Сказал спасибо: 2,531
Сказали Спасибо 11,764 раз(а) в 5,895 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Преобразование строки в число

Сообщение от stmfaq Посмотреть сообщение
Запятые поставил для ясности, на самом дели это массив данных полученных c UART.


Получил по uart такой пакет 30 30 30 34 33 38 30 30 30 35 30 30 38 30 37 из него получилось 000438000500807
А ссуть-то где? Какой вопрос - такие и ответы. Большая часть ответа - в корректной постановке задачи, а мы гадаем на кофейной гуще:"Так что же хотел сказать ТС, что он подразумевал и что, черт его дери, требуется на самом деле?"
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 14.04.2013, 22:39  
swat24
Гражданин KAZUS.RU
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Re: Преобразование строки в число

stmfaq, так, получается у вас строка текста приходит в МК. Как эта строка выглядит по нормальному в тексте? просто числа и все? Если да, то записать принятые байты в строку, а после принятия последнего байта(символа), сделать перевод из строки в число.
Есть ли в принимаемой строке символы начала, конца передачи? или просто через определенный промежуток времени к Вам приходят данные ?

Последний раз редактировалось swat24; 14.04.2013 в 22:46.
swat24 вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как задефайнить число в степени? woroba Embedd С 36 15.01.2013 22:00
C и как определить четное число bass1981 Микроконтроллеры, АЦП, память и т.д 34 12.08.2012 01:16
Разложить число на символы ASCII 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 50 18.02.2011 14:57
Как в CVAVR вывести 3х-значное число на порты? code-by Микроконтроллеры, АЦП, память и т.д 26 23.03.2010 23:23
...взять и поделить (двухбайтное число). retas Микроконтроллеры, АЦП, память и т.д 15 26.11.2007 19:21


Часовой пояс GMT +4, время: 16:38.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot