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

 
 
 
Reply to this topicStart new topic
> IEEE754 для AVR, Подпрограммы конвертации чисел
Irridium
сообщение Nov 1 2008, 14:58
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 29-10-08
Из: Украина
Пользователь №: 41 270



Подскажите примерчик для конвертации чисел из ASCII в Float (4 байта) IEEE754. Пишу проги на ассемблере, потому и примерчик желательно на нем же...
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 1 2008, 16:16
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Переводите сначала в целые числа, а далее на сайт atmel.ru - там есть пример на asm.
Останется лишь децимальную точку в нужном разряде установить.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Irridium
сообщение Nov 1 2008, 16:24
Сообщение #3





Группа: Новичок
Сообщений: 9
Регистрация: 29-10-08
Из: Украина
Пользователь №: 41 270



Цитата(demiurg_spb @ Nov 1 2008, 18:16) *
Переводите сначала в целые числа, а далее на сайт atmel.ru - там есть пример на asm.
Останется лишь децимальную точку в нужном разряде установить.


Да ASCII в целое число не проблема конвертнуть, а вот в стандартный формат IEEE754 (Real 4 Byte)
посложнее будет. Там 1й бит (4 байтного числа) - знак (+/-), 2й-9й - экспонента числа, остальные биты - мантисса.

Сообщение отредактировал Irridium - Nov 1 2008, 16:24
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 1 2008, 18:16
Сообщение #4


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

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



Цитата
Там 1й бит (4 байтного числа) - знак (+/-), 2й-9й - экспонента числа, остальные биты - мантисса.

ну вот и выделяйте сдвигами/маскированием все эти биты и оперируйте уже с целыми числами, в чем проблема ?
Go to the top of the page
 
+Quote Post
man with no name
сообщение Nov 1 2008, 18:26
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586



Логарифм по основанию 2 - экспонента числа, число с точкой перед первой значащей цифрой (единицей) - мантисса.

Точно не помню, но вроде бы первая единица мантиссы не хранится, т.к. она всегда - единица.
Go to the top of the page
 
+Quote Post
Арташес
сообщение Nov 2 2008, 10:02
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 16-06-07
Из: Армения
Пользователь №: 28 476



Цитата(Irridium @ Nov 1 2008, 19:58) *
Подскажите примерчик для конвертации чисел из ASCII в Float (4 байта) IEEE754. Пишу проги на ассемблере, потому и примерчик желательно на нем же...

Посмотрите, вдруг поможет: String To Float
Go to the top of the page
 
+Quote Post
-JonnS-
сообщение Nov 2 2008, 12:45
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-05-07
Из: Болгария
Пользователь №: 27 577



Может Вам нужно такое преобразование? Если да, могу поделитася кодом, правда PIC16 asm.
Go to the top of the page
 
+Quote Post
Irridium
сообщение Nov 3 2008, 06:20
Сообщение #8





Группа: Новичок
Сообщений: 9
Регистрация: 29-10-08
Из: Украина
Пользователь №: 41 270



Цитата(-JonnS- @ Nov 2 2008, 14:45) *
Может Вам нужно такое преобразование? Если да, могу поделитася кодом, правда PIC16 asm.

В том то и дело что нужен формат стандарта IEEE754, а не фиксир. точка...

Цитата
ну вот и выделяйте сдвигами/маскированием все эти биты и оперируйте уже с целыми числами, в чем проблема ?

Проблема в том, что я не знаю как можно сдвигать строку ASCII...

Цитата
Посмотрите, вдруг поможет: String To Float

Спасибо за примерчик, хоть это и под Win, но попробую разобраться.

Сообщение отредактировал Irridium - Nov 3 2008, 06:22
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 3 2008, 07:05
Сообщение #9


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

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



Цитата
Проблема в том, что я не знаю как можно сдвигать строку ASCII...
нужно выделить из строки знак/экспоненту/знак мантиссы/мантиссу, преобразовать экспоненту/мантиссу acsi -> bin, упаковать в float.
найти готовое решение тоже не проблема :
http://www.google.com.ua/search?q=ascii+to...lient=firefox-a
Go to the top of the page
 
+Quote Post
Irridium
сообщение Nov 3 2008, 08:07
Сообщение #10





Группа: Новичок
Сообщений: 9
Регистрация: 29-10-08
Из: Украина
Пользователь №: 41 270



Спасибо, буду разбираться...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 30th June 2025 - 18:20
Рейтинг@Mail.ru


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