0 / 0 / 1
Регистрация: 04.07.2012
Сообщений: 3
|
|||||||||||
1 | |||||||||||
Преобразование числового значения типа Float для передачи по RS-232 (SerialPort)04.07.2012, 10:55. Показов 3508. Ответов 2
Метки нет (Все метки)
Добрый день!
Возникла следующая проблема: необходимо преобразовать число типа Float для передачи по COM-порту следующим методом:
Передача выглядит следующим образом: +/-1б 2б (фиксированная точка) 3б 4б. Есть идея - записывать число в переменную типа string, а потом проводить анализ и разбивать на байты. Причем, для удобства, первый байт сначала конвертировать в тип sbyte (со знаком), а потом в byte. Но, не хотелось бы так извращаться =( Может имеется более простой способ? Добавлено через 53 минуты А всё оказалось еще проще =) Ниже привел пример кода. Единственное неудобно, что старший разряд не BM[0], а BM[4]... Но это уже издержки производства)
0
|
04.07.2012, 10:55 | |
Ответы с готовыми решениями:
2
Преобразование данных для передачи в БД SQL точных значений float Реализовать класс-оболочку Number для числового типа float Реализовать класс-оболочку Number для числового типа float Реализовать класс-оболочку Number для числового типа float |
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
|
|
04.07.2012, 11:20 | 2 |
Только учтите, что таким методом вы получите не "2 до запятой с учетом знакоразряда и 2 после запятой", а просто побайтовое представление числа с плавающей точкой по стандарту IEEE-754.
0
|
0 / 0 / 1
Регистрация: 04.07.2012
Сообщений: 3
|
||||||
04.07.2012, 16:25 [ТС] | 3 | |||||
Спасибо, учту. Думаю, для проверки работоспособности протокола такой вариант подойдет, поскольку анализ производится на уровне application.
Добавлено через 4 часа 30 минут Вот еще код для преобразования, делал из расчета, что число разбивается на двое: до запятой и после запятой, следом преобразуется для передачи и восстанавливается на приемной стороне. Набросал на скорую руку, не следя за стилем написания =)
0
|
04.07.2012, 16:25 | |
04.07.2012, 16:25 | |
Помогаю со студенческими работами здесь
3
Проверка числового значения на float Преобразование массива типа char в массив типа float Преобразование строкового типа в переменную типа float Подготовка массива данных или строки для передачи в Serialport Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |