| 
| 
 | Вопрос # 4 767/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!Можно ли зашифровать числа с плавающей точкой в 2 байта без потери точности, а лишь диапазона?  Я всегда думал что нет, но начальник моего отдела со мной спорит что так можно.
 
|  |   Вопрос задал: webkent (статус: 2-ой класс)Вопрос отправлен: 27 ноября 2010, 15:24
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Егор Здравствуйте, webkent!согласно этой странице, этой и многим другим, дял хранения мантиссы (т.е. значащих цифр без порядка) нужно:
 для типа real (старого, паскалевского) - 5 байт.
 для типа single - 3 байта
 для типа double - 6 байт с копейками
 для типа extended - 8 байт с копейками
 т.е. имеем, что для хранения только мантиссы числа нужны минимум 3 байта.
 двух точно не хватит.
 
|  | Ответ отправил: Егор (статус: 10-ый класс)Время отправки: 27 ноября 2010, 18:26
 
 |  Ответ #2. Отвечает эксперт: Вадим К Здравствуйте, webkent!Подойдем к вопросу с другой стороны. Попробуем оценить, сколько можно втиснуть в 2 байта. Припустим, что порядок мы не используем, а только мантису и она от 0 до 0.9999.... (бывает по другому, когда мантису хранят от 1.0000000 до 9.9999999....).
 2 байта это 2 в 16 это 65536. Поэтому, минимальная разница, которую можно закодировать - это 1/65536 = 1.5 на 10-5. Это также будет минимальное число, которое можно закодировать в 2 байтах (при выбранной выше системе). Это 4 значащие цифры.
 Если такая точность удовлетворяет, то ответ да, можно закодировать. если нет, то нет. Кто знает, что хочет начальник хранить? А это ключевое понятие.
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 27 ноября 2010, 20:37
 
 |  
 Мини-форум вопросаВсего сообщений: 6; последнее сообщение — 27 ноября 2010, 22:32; участников в обсуждении: 5. 
|   | webkent (статус: 2-ой класс), 27 ноября 2010, 15:26 [#1]:Де ради проблемы, а ради интереса вопрос =) |  
|   | Егор (статус: 10-ый класс), 27 ноября 2010, 15:41 [#2]:что? какого диапазона? Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | Ерёмин А.А. (статус: *Администратор), 27 ноября 2010, 16:06 [#3]:Смотря какая точность требуется. |  
|   | Толяныч (статус: 4-ый класс), 27 ноября 2010, 17:56 [#4]:Надо выбирать такую работу, где умный начальник. Если 2 байта, один байт на порядок, то остается 1 байт на мантиссу, с использованием скрытого разряда точность будет в районе 0,2% - хуже, чем у логарифмической линейки   |  
|   | min@y™ (статус: Доктор наук), 27 ноября 2010, 21:01 [#5]:Скажи начальнику, что я сказал, что он мудак. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | webkent (статус: 2-ой класс), 27 ноября 2010, 22:32 [#6]:ок я так я так и знал =) 
 Ибо читал вики по типам данных =))
 
 Мин@y твои слова - истина! Он - мудак =)
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |