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

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

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

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

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

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


 
Опции темы
Непрочитано 08.02.2013, 01:51  
Belka12
Временная регистрация
 
Аватар для Belka12
 
Регистрация: 29.03.2009
Сообщений: 61
Сказал спасибо: 44
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Belka12 на пути к лучшему
По умолчанию Перевод IEEE 754 в HEX

Здравствуйте!
Вот у меня возникла непонятка. Я работала все время с целыми числами, т.к. работала, в основном, с микроконтроллерами. А тут такая незадача… Есть устройство, некий датчик, который передает данные в формате IEEE -754. Т.е. в виде дроби, с мантиссой и порядком. Сам стандарт посмотрела, в представлении все понятно, но мне, как говорится, абсолютно не нужно это представление, мне нужно вывести это число на дисплей, и только. Т.е. мне нужно перевести это число в нормальный шестнадцатиричный, или двоично-десятичный код, чтобы можно было просто вывести на дисплей моего прибора. Т.е, может, кто-то писал преобразование из IEEE 754 в двоично-десятичное число?
С уважением.
Реклама:
Belka12 вне форума  
Непрочитано 08.02.2013, 02:51  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,982
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Перевод IEEE 754 в HEX

это вам не поможет?
gcc IEEE 754http://www.google.com.ua/#hl=ru&gs_r...w=1920&bih=979

mplab c IEEE 754

нормализация из IEEE 754

http://www.softelectro.ru/ieee754.html

сегодня уже пятница, может забросить сие безобразие и отправиться на природу, а?
jump вне форума  
Сказали "Спасибо" jump
Belka12 (08.02.2013)
Непрочитано 08.02.2013, 20:53  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Перевод IEEE 754 в HEX

Что то тишина... В MCS51 - на С не разгуляшься.
Какой у Вас диапазон чисел и точность?
Boba_spb вне форума  
Сказали "Спасибо" Boba_spb
Belka12 (08.02.2013)
Непрочитано 08.02.2013, 22:15  
Belka12
Временная регистрация
 
Аватар для Belka12
 
Регистрация: 29.03.2009
Сообщений: 61
Сказал спасибо: 44
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Belka12 на пути к лучшему
По умолчанию Re: Перевод IEEE 754 в HEX

Сообщение от Boba_spb Посмотреть сообщение
Что то тишина... В MCS51 - на С не разгуляешься.
Какой у Вас диапазон чисел и точность?
Диапазон чисел от 0,0001 до 100. (Десятичные). Точность - половина самого мелкого значения, т.е. 0,00005, в общем, наверное, на это можно закрыть глаза и посчитать 0,0001.

П.С. Хоть Си, хоть что, хотелось бы просто понять алгоритм преобразования именно из IEEE 754 в десятичный, а не наоборот.

Последний раз редактировалось Belka12; 09.02.2013 в 00:13.
Belka12 вне форума  
Непрочитано 08.02.2013, 23:40  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Перевод IEEE 754 в HEX

Ну тады все будет просто.
Boba_spb вне форума  
Непрочитано 09.02.2013, 00:38  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Перевод IEEE 754 в HEX

Что то типа такого

PHP код:
void FloatToStr(char *tx,float a)
{
int i =*(int *)&a;
int p= (i››23)&255;
int m=( 0x7fffff )| 0x800000;
if(
p==0)
 {
  *
tx++='0';
  *
tx=0;
  return;
 }
 if(
i0)
   {
    *
tx++='-';
   }
 
p=p-127;
 if(
p0)
   {
    
m‹‹=p;
   }
 else
  {
   if(
p0)
   {
    
p=-p;
    
m››=p;
   }
  }
 
i=(m››23);
 
m= (m&0x7fffff)››12;
 
m*=125;
 if(
m&0x80)
  {
  
m+=256;
  }
 
m››=8;
 *
tx++='0'+i/100;
 
i%=100;
 *
tx++='0'+i/10;
 *
tx++='0'+i%10;
 *
tx++='.';
 *
tx++='0'+m/100;
 
m%=100;
 *
tx++='0'+m/10;
 *
tx++='0'+m%10;
 *
tx=0;

}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char *tx="+100.000";
float a[]={123.999,100.09,100.009123.1,100.01,100.001,};
Memo1-›Lines-›Clear();
  for(
int i=0;isizeof(a)/sizeof(float);i++)
  {
   
FloatToStr(tx,a[i]);
   
Memo1-›Lines-›Add(tx);
  }

Миниатюры:
Нажмите на изображение для увеличения
Название: flt.JPG
Просмотров: 108
Размер:	16.8 Кб
ID:	43373  
Boba_spb вне форума  
Сказали "Спасибо" Boba_spb
Belka12 (09.02.2013)
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в HEX-файл добавить кусок другого HEX-а? Don_Ambrosio Микроконтроллеры, АЦП, память и т.д 10 06.05.2008 08:48
Перевод PROTEUS 6.9sp5 VO-VAN Proteus 21 02.01.2008 00:31
Proteus - перевод мануала Gordey Proteus 16 08.05.2007 00:13
ieee 488 Butthead Микроконтроллеры, АЦП, память и т.д 1 11.12.2004 22:52


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


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