|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.12.2010, 15:59 | #1 |
Форумчанин
Регистрация: 03.05.2010
Сообщений: 129
|
Мантисса и порядок. Страуструп.
Упражнение: "Напишите функцию, печатающую порядок и мантиссу параметра типа double."
Понимая что автор ( Страуструп) предполагает использование только пройденного материала, решил использовать обьединения 2.6.2 и поля 2.6.1. Идея такая: создаю структуру разбитую на поля подходящего размера (64 бита), объединяю с данными и использую каждое поле. Код:
1. Обязательно ли поле должно иметь целый тип?(Думаю да.) 2. Не зря ли я разбил мантиссу на две части?(Думаю выбора нет.) 3. Как теперь соединить эти части и напечатать мантиссу?(Нет мыслей).Прошу Вашей помощи. |
02.12.2010, 08:47 | #2 |
Форумчанин
Регистрация: 03.05.2010
Сообщений: 129
|
|
02.12.2010, 11:27 | #3 |
Новичок
Джуниор
Регистрация: 02.12.2010
Сообщений: 3
|
да, подскажите кто-нибудь я тоже мучаюсь над этой задачкой
http://en.wikipedia.org/wiki/Double_precision Последний раз редактировалось Stilet; 02.12.2010 в 20:27. |
02.12.2010, 13:33 | #4 |
Форумчанин
Регистрация: 03.05.2010
Сообщений: 129
|
Да, я Вики читал. Я незнаю как програмно "соединить" два поля "uiMant1" и "uiMant2". В "int" их нельзя - потеряются данные, только что прямо в "cout", но я непонимаю как выглядит мантисса.
Последний раз редактировалось KemanSR; 02.12.2010 в 13:35. |
02.12.2010, 17:46 | #5 |
Новичок
Джуниор
Регистрация: 02.12.2010
Сообщений: 3
|
на самом деле, нас с тобой понесло в дебри)
мне тут сказали что в этом задании представлять мантиссу вроде необязательно в двоичном виде.. короче, все оказалось куда проще.. "Структура числа Число с плавающей запятой состоит из: * Мантиссы (выражающей значение числа без учёта порядка) * Знака мантиссы (указывающего на отрицательность или положительность числа) * Порядка (выражающего степень основания числа, на которое умножается мантисса) * Знака порядка −1 246 145 000 (минус один миллиард двести сорок шесть миллионов сто сорок пять тысяч): -1,246145 10^9; N = −1 246 145 000, M = −1,246145, n = 10, p = 9. кажется это все что нужно вывести(((( но если ты в двоичном сможешь, то ты крут)) тебе int не хватает? а long? или long long?? мне больше интересно как определить максимальные и минимальные значения для char*, int*, void* из 8го задания Последний раз редактировалось Stilet; 02.12.2010 в 20:27. |
02.12.2010, 19:36 | #6 |
Форумчанин
Регистрация: 03.05.2010
Сообщений: 129
|
Если Вы читали код первого сообщения то видели что мантисса занимает 20 + 32 = 52 бита, поэтому сохраняя её в "int" = 32 бита, я потеряю информацию (20 бит).
... хотя long long подходит... сейчас займусь. Спасибо! Последний раз редактировалось KemanSR; 02.12.2010 в 19:38. |
02.12.2010, 19:49 | #7 |
Новичок
Джуниор
Регистрация: 02.12.2010
Сообщений: 3
|
не забудь скинуть full-версию)
а что насчет 8го задания? |
03.12.2010, 13:30 | #8 | |
Форумчанин
Регистрация: 03.05.2010
Сообщений: 129
|
Цитата:
Вот код, но последняя часть не закончена: Код:
P.S. Попрошу заметить что я намеренно не уходил от материала (пример: функция pow_two(int n) - тоже из книги). |
|
03.12.2010, 13:50 | #9 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Я, конечно, немного не в тему, но может стоит вместо второго издания почитать третье? Как-никак язык сильно изменился с тех пор, да и объединения в наше время мало кому нужны кроме случаев глубокой оптимизации кода (в первую очередь обычно алгоритмы оптимизируют, а экономия памяти с помощью union'ов - один из последних этапов).
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мантисса 6 разрядов | mastar | Помощь студентам | 2 | 26.03.2011 18:10 |
Обратный порядок | G. J. Cezar | Общие вопросы C/C++ | 2 | 22.10.2010 15:10 |
Перегрузка оператора [] (Страуструп) | Ozerich | Общие вопросы C/C++ | 0 | 12.08.2010 13:06 |
[Delphi] | Порядок изучения | Lemo | Свободное общение | 7 | 06.12.2009 19:52 |
Порядок | OgE®_M@G | Microsoft Office Excel | 4 | 10.08.2008 01:45 |