Перейти к содержанию
    

Помогите с преобразованием типов

Помогите пожалуйста мозги уже "замылились".

 

Есть массив из символов в формате char приходящий с RS485 (например: a[0]='1',a[1]='2',a[2]='.',a[3]='4').Нужно его преобразовать в десятичное число формата float (Например 12.4).

 

Программирую на VisualDSP++ 4.5 процессор BlackFin 537. Я пробовал собрать все в строку и использовать функцию atof. Но потом мне сказали что данный тип процессора не поддерживает работу со строками. Уже не знаю что делать помогите пожалуйста.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По 485 интерфейсу приходят коды символов ASCII. Как вариант для перевода в float можно создать массив где по определенному индексу(принятому по RS485 символу) будет находиться соответствующее число. Например a[0]=b[31], где 31 принятый символ '1', а b[31]=1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но потом мне сказали что данный тип процессора не поддерживает работу со строками.

Извините, но это полнейший бред.

 

Используйте atof (или sscanf) и не заморачивайтесь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за помощь! Я решил всё в лоб:

1)Перевел char в short

2)Склеил в число

3)И разделил на порядок

 

Огромно спасибо за помощь!

Изменено пользователем ZEbr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...