Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
#1

Как определить порядок бит в double? - C++

24.12.2014, 15:45. Просмотров 2537. Ответов 47
Метки нет (Все метки)

Как определить порядок бит в double?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2014, 15:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как определить порядок бит в double? (C++):

Too few parametrs in call to '_fastcall LogN(cont log double, const long double)' - C++ Builder
void __fastcall TForm1::Button1Click(TObject *Sender) {int n; double y,a=1.5,b=0.7,z=3.2,x=StrToFloat(Edit1->Text); ...

Ошибка e2015 ambiguity between(double,double) в функции - C++ Builder
Функция: void gmdh1() ; { double poly; double work; unsigned short int ind; unsigned short int ma; double rms; double ww,...

Как удалить один бит из числа? - C++ Builder
Как программно сделать то, что на картинке?

Как обьявить и инициализировать массив через new в 32 бит? - C++ Builder
Как объявить и инициализировать массив через new в 32 бит? На 64 бит вот так: const char *string = new char {108,102,104,'\0'};

Как вывести double в string - C++ Builder
Стало не хватать int, решил воспользоваться double выводил раньше так: int sum_in; temp = "Итого: " + IntToStr(sum_in) + "...

Как вывести double в MessageBox'е? - C++ Builder
Пробывал преобразовать в строковый: char buf; double time = clock () / CLOCKS_PER_SEC; itoa(time, buf, 16); MessageBox(0, "Вы...

47
Fulcrum_013
982 / 1063 / 109
Регистрация: 14.12.2014
Сообщений: 8,814
Завершенные тесты: 3
25.12.2014, 11:25 #31
Цитата Сообщение от taras atavin Посмотреть сообщение
Есть ли гарантия, что CPU любой двоичной домашней машины всегда будет поддерживать IEEE 754
Вообщето IEEE - это институт по стандартизации электрических устройств. Вобщем то американский аналог ГОСТа.
Цитата Сообщение от taras atavin Посмотреть сообщение
А с плавающей запятой как? Ни на фиксированную запятую, ни на обыкновенные дроби переходить не охота.
Да так же само только в два хода. первым ходом переставляешь ее как инт той же длины. вторым ходом определяешь размер мантисы и порядка.
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
25.12.2014, 11:35  [ТС] #32
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вообщето IEEE - это институт по стандартизации электрических устройств. Вобщем то американский аналог ГОСТа.
То то даже опции оптимизации на него плюют. ГОСТ же был строг, нарушать его было нельзя.
Стандарт заменяет IEEE 754-1985. В новый стандарт включены двоичные форматы из предыдущего стандарта и три новых формата. В соответствии с действующим стандартом, реализация должна поддерживать по крайней мере один из основных форматов, как и формат арифметики и формат обмена.
Можно как то узнать, что это за формат обмена?
0
Fulcrum_013
982 / 1063 / 109
Регистрация: 14.12.2014
Сообщений: 8,814
Завершенные тесты: 3
25.12.2014, 12:57 #33
Цитата Сообщение от taras atavin Посмотреть сообщение
Можно как то узнать, что это за формат обмена?
Секретный алгоритм получения информации по стандарту IEEE 754-1985
Код
Browser.Navigate("www.google.com");
User.SelectControl("SearchString");
User.Type("IEEE-754-85");
User.PressKey("Enter");
Сверхсекретный патч секретного алгоритма:
Строку 3 заменить на
Код
User.Type("IEEE-754-2008");
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
25.12.2014, 12:58  [ТС] #34
Именно так я и нашёл сам вопрос.
1
Fulcrum_013
982 / 1063 / 109
Регистрация: 14.12.2014
Сообщений: 8,814
Завершенные тесты: 3
26.12.2014, 23:24 #35
Цитата Сообщение от taras atavin Посмотреть сообщение
Именно так я и нашёл сам вопрос.
Сверхсекретный SP1 секретного алгоритма:
Код
Browser.Navigate("www.google.com");
User.SelectControl("SearchString");
User.Type("IEEE-754 standart 2008");
User.PressKey("Enter");
User.FindInResults("IEEE Std 754™-2008 - Florida State University");
User.FindInResults("Floating Point and IEEE 754 Compliance for NVIDIA GPUs");
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
27.12.2014, 15:39  [ТС] #36
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Floating Point and IEEE 754 Compliance for NVIDIA GPUs
А нафига мне энвидия?

Добавлено через 18 секунд
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
User.FindInResults("IEEE Std 754™-2008 - Florida State University");
То же самое.
0
Fulcrum_013
982 / 1063 / 109
Регистрация: 14.12.2014
Сообщений: 8,814
Завершенные тесты: 3
27.12.2014, 21:54 #37
Суперсекретная оптимизация сверхсекретного алгоритма
http://www.softelectro.ru/ieee754.html
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
30.12.2014, 10:23  [ТС] #38
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Кстати слово это не два байта. Это размер данных с которыми оперирует проц за одну операцию.
По такой логике слово равно 8-ми байтам, но 8 байт всё таки называются четверным словом. Есть тип WORD, это на любом потомке i80286 два байта, а DWORD равен четырём байтам.

Добавлено через 9 минут
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Суперсекретная оптимизация сверхсекретного алгоритма
http://www.softelectro.ru/ieee754.html
И вики:
Число с плавающей запятой (или число с плавающей точкой) — форма представления вещественных (действительных) чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Используемое наиболее часто представление утверждено в стандарте IEEE 754. Реализация математических операций с числами с плавающей запятой в вычислительных системах может быть как аппаратная, так и программная.
. Наиболее часто не значит всегда. А об определении формата опять ни слова. Мало того:
Стандарт заменяет IEEE 754-1985. В новый стандарт включены двоичные форматы из предыдущего стандарта и три новых формата. В соответствии с действующим стандартом, реализация должна поддерживать по крайней мере один из основных форматов, как и формат арифметики и формат обмена.
. То есть даже под IEEE 754 понимается 4 разных формата.
0
Fulcrum_013
982 / 1063 / 109
Регистрация: 14.12.2014
Сообщений: 8,814
Завершенные тесты: 3
30.12.2014, 18:34 #39
Цитата Сообщение от taras atavin Посмотреть сообщение
То есть даже под IEEE 754 понимается 4 разных формата.
В зависимости от длины в байтах.

Добавлено через 2 минуты
т.е half, single, double и Long double.
Да кстати, для SSE-регистров еще применялся формат упакованных чисел с плавающей запятой, но сейчас они поддерживают и обычные IEEE форматы.
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
30.12.2014, 18:34  [ТС] #40
Эйси. А не стандартные? В формат заранее закладывается абсолютно дикая экзотика от густо перемешанных байт четверного слова до иных ичностей целого.
0
Fulcrum_013
982 / 1063 / 109
Регистрация: 14.12.2014
Сообщений: 8,814
Завершенные тесты: 3
30.12.2014, 18:55 #41
Ну дык сначала определи, как у тебя перемашаны байты в слове/двойном/четверном слове - их порядок следования зависит от архитектуры конкретной машины. А внутри слова/двойного/четверного уже в сывоем формате число с плавающей точкой, который не должно зависить от формата архитектуры. т.е. данные ((byte*)&FP), ((byte*)&FP)+2, ((byte*)&FP)+3 должны быть одинаковыми для формата.
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
31.12.2014, 07:04  [ТС] #42
Вот только смешанный порядок - это так, мелочь. В формат заложена поддержка даже других ичностей, на случай, если романтики сетуни всё таки сделают троичный комп со словами тритов так по 81-му.

Добавлено через 7 минут
Главное условие такое: границы платформ не имеют значения, формат не предназначен для поддержки лишь на тех платформах, которым или не хватает ресурсов для исполнения использующих его приложений, или они вообще не предназначены для приложений такого класса. Ни кому же не придёт в голову на контроллере запускать графический редактор, даже если ему и хватит на это ресурсов, вот подобные соображения и могут ограничивать.
0
Fulcrum_013
982 / 1063 / 109
Регистрация: 14.12.2014
Сообщений: 8,814
Завершенные тесты: 3
31.12.2014, 12:09 #43
Цитата Сообщение от taras atavin Посмотреть сообщение
Ни кому же не придёт в голову на контроллере запускать графический редактор
По старым временам контроллером называли любую плату имеющую на борту хотя бы какой-то проц. т.е - видеоконтроллер, аудиоконтроллер, контроллер HDD и т.д
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
31.12.2014, 15:13  [ТС] #44
z80 с ПЗУ ZX-SPECTURM контроллером не является, а контроллер машиниста может не иметь ни какого процессора. Объединяющим признаком здесь является использование для управления. Дисплеем, динамиками, маршевыми двигателями, дисководом....

Добавлено через 15 минут
Или вот: https://ru.wikipedia.org/wiki/%D0%9A...B5%D0%BB%D1%8F.
0
Fulcrum_013
982 / 1063 / 109
Регистрация: 14.12.2014
Сообщений: 8,814
Завершенные тесты: 3
31.12.2014, 15:28 #45
Цитата Сообщение от taras atavin Посмотреть сообщение
может не иметь ни какого процессора
Как это ни какого? Процессор - это коммутатор сигналов. Там тоже коммутатор, но только примитивный.
0
31.12.2014, 15:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.12.2014, 15:28
Привет! Вот еще темы с ответами:

Как выводить в Edit тип данных Double ? - C++ Builder
Всем доброго вечера. Написал программу формулу для расчета вот код программы (кнопки): void __fastcall TForm1::Button1Click(TObject...

Как избавиться от погрешности при выводе double? - C++ Builder
После того, как считал строку "3,2", перевожу во float, затем складываю с другим числом и получаю хрень непонятную что-то вроде 1,2+2=...

Как изменить порядок запуска форм в C++ builder - C++ Builder
Как изменить порядок запуска форм в C++ builder? К примеру чтобы при запуске программы вместо Form1 запускалась Form2.

Как записать произвольное число бит в файл?! - Visual C++
Всем привет.. Очень нужна ваша помощь! Как записать в файл 1 бит или любое произвольное число битов?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru