Уважаемые эксперты имется вещественное число его необходимо перевести в двоичное с плавающей точкой (32битное)типа Single. Я знаю его формат (s-знак(1бит);e-порядок(8бит);f-мантиса(23бита)), нашел описание правил для получения из двоичного формата в десятичный (в приложении), но при обратном переводе у меня получаются число во <много> раз меньше чем было например было 6,5 стало 6,09715175688662 (я понимаю что точного значения я и недолжен был получить, но и тагого тоже). По ошибочно инерпритируется маниса. Проверяю я так: просто в Delhpi присваиваю пременной типа Single число, побитно его считвываю (различай где младшие а где старшие биты), а потом по этим правилам перевожу обратно! Вопрос первый как без компа перевести десятичное с плавающей запятой 4байтное. Вопрос второй как это перевести обратно. Вопрос третий, гед уменя могла быть
ошибка!
Приветствую Вас, Freddie! В компе вещественные числа представляются с мантиссой со _СКРЫТОЙ_ единицей, то есть при переводе в двоичную первая единица мантиссы опускается. Вот в чем у тебя ошибка. Ответ отправлен: 26.05.2004, 09:44 Отправитель: Snowm@n Отвечает Ayl
Здравствуйте, Freddie! Если я не ошибаюсь, в представлении числа с плавающей запятой мантисса хранится в нормализованном виде, т.е. старший бит представления мантиссы должен быть 1, причем эта единица не хранится. То есть у тебя ошибка либо при прямом, либо при обратном переводе.
Ответ отправлен: 26.05.2004, 10:49 Отправитель: Ayl Отвечает Boriss
Приветствую Вас, Freddie! Судя по тому, что Вы написали - а это раздел из руководства по Borland Pascal - ощибки нет и быть не может. А так, похоже, что Вы информацию о Borland Pascal испольузете в Delphi, а это не совмем верно. Так что пришлите кусок кода, тогда и скажем, в чем ошибка :)) Разные форматы используеют разные представления - скорее всего ошибка в неучте этого Ответ отправлен: 27.05.2004, 16:55 Отправитель: Boriss
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.