Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/139: Рейтинг темы: голосов - 139, средняя оценка - 4.57
AL
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 6
1

Экспонента и мантисса?

20.09.2009, 19:26. Показов 29077. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Люди...помогите пожалуйста.

Объясните по подробнее о мантиссе и экспоненте. Желательно именно на СИ.
Просто вот в универ поступил, и нам дают лекции и практику по СИ(и только). А вот про мантиссу и экспоненту нам не рассказывают, с нас только спрашивают...мол мы должны знать это из школы всё такое. А я не в душе что это, ибо закончил общеобразовательную школу.=)

А конкретно тема у нас была про типы данных, ну знаковые незнаковые, всё такое.

Да, вот ещё, как сделать запись числа через экспоненту???

и ещё вопрос есть, выяснить какая часть откидывается(я сам толком не въезжаю о чем это)
знак_|_мантисса_|||_знак_|_Экспонента

P.S. гуглил и на вики смотрел, и юзал поиск сдесь, но толькового обьяснения не нашел.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2009, 19:26
Ответы с готовыми решениями:

Нулевая ли мантисса?
Доброго времени суток, можно ли как-нибудь узнать нулевая ли мантисса в вещественном числе типа...

Маленькая мантисса long double
здрасте. Я использую pow (long double, long double) и не смотря на это, меня не удовлетворяет...

Мантисса, знак, характеристика вещественного числа
Здравствуйте, такая проблема, не могу уже битый час решить задачу. Нужно целые типы представить в...

Порядок и мантисса параметра типа double
Задача из Страуструпа функция печатающая порядок и мантиссу параметра типа double Ну...

14
66 / 66 / 5
Регистрация: 12.03.2008
Сообщений: 392
20.09.2009, 22:59 2
Экспонента - это математическая функция, также обозначаемая как exp. А мантисса это дробная часть числа, т.е. то что после десятичной точки.
1
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
20.09.2009, 23:07 3
Экспонента - это наверное имеется в виду порядок.
http://ru.wikipedia.org/wiki/Э... ная_запись

Не знаю что там тебе нужно делать с мантисой - изучи функции fcvt(), modf().
http://www.codenet.ru/progr/cpp/spru/fcvt.php
http://www.codenet.ru/progr/cpp/sprd/modf.php

Может еще atoi(), strol(), itoa().
2
AL
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 6
21.09.2009, 17:59  [ТС] 4
Спасибо, но есть ли информация как в СИ допустим представить число в экспоненциальном виде?? ну тобишь 2.7Е+3 должно выводиться, а не 0.0027...мм??)
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
21.09.2009, 18:13 5
Флаги форматирования и манипуляторы
1
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
21.09.2009, 18:42 6
2M128K145: Там вроде только C++ ?

В языке С можно использовать printf( "%e", 0.0027 );
http://www.codenet.ru/progr/cpp/spru/printf.php
2
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
21.09.2009, 19:25 7
Цитата Сообщение от AL Посмотреть сообщение
как в СИ допустим
пропустил, согласен .

Не по теме:

odip, если не сложно, можешь подбросить
в ту тему запись на С?

0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
22.09.2009, 04:16 8
Цитата Сообщение от AL
Спасибо, но есть ли информация как в СИ допустим представить число в экспоненциальном виде??
C
1
    double n = 0.123e+3;
C
1
    double n = 123.0;
одинаково хранятся, то есть, и второе можно вывести в обеих формах, и первое
1
AL
0 / 0 / 0
Регистрация: 20.09.2009
Сообщений: 6
22.09.2009, 07:54  [ТС] 9
Спасибо всем, начинаю немного разбираться^^, буду пробовать!)
0
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 6
28.03.2012, 00:14 10
Доброго времени суток.
Я только начал изучать С++ и мало что понимаю, если написал глупость прошу поправить.
Проблема следующая - нужно изменить вывод экспоненты с 123е+001 на 123е+01.
Заранее спасибо;
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
28.03.2012, 01:40 11
Цитата Сообщение от Teiz Посмотреть сообщение
нужно изменить вывод экспоненты с 123е+001
это где такой вывод ?
0
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 6
28.03.2012, 02:05 12
C++
1
2
3
4
5
6
7
8
9
{
    char buff[256];
    ofstream out2;                                                                  
    out2.open(temp2name, ios_base::app | ios_base::out);
    for (int j = 0; j < 3; j++)
    {
        sprintf(buff, "% 13e% 13e% 13e% 13e% 13e% 13e% 13e% 13e% 13e", finalform[5][j], finalform[11][j], finalform[17][j], finalform[23][j], finalform[29][j], finalform[35][j], finalform[41][j], finalform[47][j], finalform[53][j]);
        out2 << buff << endl;
    }
Насколько я понимаю, нужно чтото счудить с 13e. Что именно я не знаю. Пол инета перерыл и люди говорял, мол, это от машины зависит
Результат данного куска кода:
Bash
1
-1.209046e-003-4.001953e-004 9.947106e-005 4.432998e-004 3.715893e-005 7.951631e-004 5.030989e-010 1.053988e-008 1.131979e-004
а нужно получить
Bash
1
-1.209046e-03-4.001953e-04 9.947106e-05 4.432998e-04 3.715893e-05 7.951631e-04 5.030989e-10 1.053988e-08 1.131979e-04
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
28.03.2012, 02:40 13
на экспоненту нельзя подействовать
можешь написать функцию, которая работает с полученной строкой, убирая ноль (если там ноль)

и у тебя ещё ошибка - ты думаешь, что пробел в спецификаторе всегда вставляет пробел перед числом, но это не так
пробел вставляется вместо знака плюс
1
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 6
28.03.2012, 03:01 14
Про замену плюса на пробел я знаю, код получился большой всего тут не вставиш . Жаль что нельзя изменить экспоненту, справляюсь заменой в блокноте е-0 е+0 на е- е+
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
28.03.2012, 09:57 15
по идее, там должна быть строка в виде string и stringstream для её составления
а у строки string должен быть метод для замены вхождений, что-то вроде replace()
0
28.03.2012, 09:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2012, 09:57
Помогаю со студенческими работами здесь

Экспонента
Как вывести число 1234567.89 в форме экспоненты?

Экспонента в степени
Есть цикл, не возводит экспоненту в степень for (i = 0; i &lt; n; i++) { f = 10 * k*(cos(k*x)...

Как записать (экспонента)
ребята, как записать e^2.8*a?

Экспонента в комплексной степени
Подскажите пожалуйста, как вернуть значение экспоненты в комплексной степени? Мне не на выводе...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru