реклама на сайте
подробности

 
 
> Как разобрать float на байты в pythone, Или подскажите алгоритм на С
mempfis_
сообщение Feb 20 2009, 12:32
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Добрый день.
Стоит задача разобрать float-число на байты и выполнить побайтную пересылку с помощью gprs-модема.
Задача осложнена тем что пишу на python-е и стандартный модуль struct, способный выполнить эту задачу, модемом не поддерживается.

Поэтому прошу помочь алгоритмом преобразования строки содержащей float-число в 4 байта этого самого float-числа.

Т.е. параметр будет строка вида '0012.5000' а результат 11000001 01001000 00000000 00000000b = C1 48 00 00h

Саму строку легко могу разбить на отдельные числа. А вот собрать с них float проблематично.
Подскажите пожалуйста где об этом можно почитать, может быть есть готовые алгоритмы на С (т.к. сомневаюсь что они есть на pythone)
Заранее спасибо за помощь smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ukpyr
сообщение Feb 21 2009, 11:39
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



что-то типа :
Код
f = float('0012.5000')
bytes = struct.pack('f', f)
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Feb 21 2009, 22:31
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(ukpyr @ Feb 21 2009, 14:39) *
что-то типа :
Код
f = float('0012.5000')
bytes = struct.pack('f', f)


Да этот модуль мне подходит но он не поддерживается интерпретатором питона gprs-модема (я об этом написал в самом первом посте это и послужило поводом для создания темы) crying.gif

Мне нужен пример на С или питоне для перевода строки в число типа float одинарной точности чтобы я мог его переделать в свою функцию которая могла бы вернуть мне 4 байта этого float-числа. Или хотябы понятное описание алгоритма перпевода десятичных дробных чисел в float. smile.gif
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 21 2009, 23:17
Сообщение #4


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(mempfis_ @ Feb 22 2009, 01:31) *
для перевода строки в число типа float одинарной точности
Код
#include <stdlib.h>
volatile float f;
char s[] = "2.4137";
int main (void)
{
f = atof(s);
return 0;
}


И шо неясно ?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 23:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01448 секунд с 7
ELECTRONIX ©2004-2016