Форум программистов, компьютерный форум CyberForum.ru

2-ичное представление числа типа double или float? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 93, средняя оценка - 4.91
Hayk
2 / 1 / 0
Регистрация: 28.08.2009
Сообщений: 16
04.11.2009, 13:45     2-ичное представление числа типа double или float? #1
помогите разобратся,,,, плиз))
double a=1991.829;
a==01000000 10011111 00011111 01010000 11100101 01100000 01000001 10001001;
скажите пожалуйста как число а преврашается вот в это?(какой бит чему ответственен?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
04.11.2009, 14:09     2-ичное представление числа типа double или float? #2
или мне кажется или double означает по умолчанию double int, a число а - с десятичной точкой (тип float)

Добавлено через 20 секунд
наверно из-за этого и получается такое

Добавлено через 1 минуту
11111000111,110101 - вот правильный результат

Добавлено через 2 минуты
вот этому числу соответствует 4 байта(float)
вашему числу соответствует 8 байт, как и полагается типу double
вот где-то тут и загвоздка
Hayk
2 / 1 / 0
Регистрация: 28.08.2009
Сообщений: 16
04.11.2009, 14:13  [ТС]     2-ичное представление числа типа double или float? #3
Цитата Сообщение от Iworb Посмотреть сообщение
или мне кажется или double означает по умолчанию double int, a число а - с десятичной точкой (тип float)

Добавлено через 20 секунд
наверно из-за этого и получается такое

Добавлено через 1 минуту
11111000111,110101 - вот правильный результат
не брат, ты написал как 1991,829 предстовляется в 2-ичной форме, я написал как число дабл читается в С++, ихочу знать почему именно так
ООП
 Аватар для ООП
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 13
04.11.2009, 14:14     2-ичное представление числа типа double или float? #4
Если не ошибаюсь, то это для сопроцессора тип.
Hayk
2 / 1 / 0
Регистрация: 28.08.2009
Сообщений: 16
04.11.2009, 14:21  [ТС]     2-ичное представление числа типа double или float? #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
using namespace std;
 
union bits
{
    bits(double n);
    void show_bits();
    double d;
    unsigned char c[sizeof(double)];
};
bits::bits(double n)
{
    d=n;
}
void bits::show_bits()
{
    int i,j;
    for(j=sizeof(double)-1;j>=0;j--)
    {
        cout<<"двоичное представление байта "<<j<<":";
        for(i=128;i;i>>=1)
        {
            if(i & c[j])
            {
                cout<<"1";
            }
            else
            {
                cout<<"0";
            }
        }
        cout<<endl;
    }
}
int main()
{
    setlocale(LC_ALL,"Russian");
    bits ob(1991.829);
    ob.show_bits();
    return 0;
    system("pause");
}
вот моя прога

двоичное представление байта 7:01000000
двоичное представление байта 6:10011111
двоичное представление байта 5:00011111
двоичное представление байта 4:01010000
двоичное представление байта 3:11100101
двоичное представление байта 2:01100000
двоичное представление байта 1:01000001
двоичное представление байта 0:10001001
Press any key to continue . . .

вот ответ,,,,,вопрос!!! как так получилась?))
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
04.11.2009, 14:39     2-ичное представление числа типа double или float? #6
ну вот, оно тебе КАЖДУЮ цифру представила в двоичном представление байта + точка десятичная

Добавлено через 45 секунд
а вот как получилось - это уже не ко мне =(
Hayk
2 / 1 / 0
Регистрация: 28.08.2009
Сообщений: 16
04.11.2009, 15:10  [ТС]     2-ичное представление числа типа double или float? #7
Цитата Сообщение от Iworb Посмотреть сообщение
ну вот, оно тебе КАЖДУЮ цифру представила в двоичном представление байта + точка десятичная
не друг я и этот вариант проверял это не так

Добавлено через 29 минут
кто нибудь хелп ми
temni
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
04.11.2009, 15:21     2-ичное представление числа типа double или float? #8
http://www.rus-edu.bg/edu/online/inf...pter4/1_4.html

Добавлено через 6 минут
если вкратце - берёшь десятичную часть дроби, умножаешь её на два, записываешь целую часть произведения в мозг, дробную часть получившегося умножаешь на два, и опять записывешь целую часть. и так много раз (в зависимости от того, какая точность нужна). потом берёшь целую часть дроби и переводишь её в двоичную систему обычным способом (делением в столбик). а потом записываешь ответы через запятую
Hayk
2 / 1 / 0
Регистрация: 28.08.2009
Сообщений: 16
04.11.2009, 15:53  [ТС]     2-ичное представление числа типа double или float? #9
Цитата Сообщение от temni Посмотреть сообщение
http://www.rus-edu.bg/edu/online/inf...pter4/1_4.html

Добавлено через 6 минут
если вкратце - берёшь десятичную часть дроби, умножаешь её на два, записываешь целую часть произведения в мозг, дробную часть получившегося умножаешь на два, и опять записывешь целую часть. и так много раз (в зависимости от того, какая точность нужна). потом берёшь целую часть дроби и переводишь её в двоичную систему обычным способом (делением в столбик). а потом записываешь ответы через запятую
так шитать я тоже умею))) ты смотри по више, там я кокретизировал вопрос

Добавлено через 23 минуты
дайте точный ответ пожалуйста
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
04.11.2009, 15:57     2-ичное представление числа типа double или float? #10
Цитата Сообщение от Hayk Посмотреть сообщение
ты смотри по више, там я кокретизировал вопрос
Не знаю, что ты там конкретизировал, но я так и не понял, ты хочешь понять, как вообще плавающие числа в двоичной системе представляются или как они хранятся в машине

Можешь пока тут почитать http://ru.wikipedia.org/wiki/Плавающая_запятая
Я вообще хотел faq по этому вопросу написать, но никак руки не доходят. А объяснить на пальцах быстро не получится
Hayk
2 / 1 / 0
Регистрация: 28.08.2009
Сообщений: 16
04.11.2009, 16:00  [ТС]     2-ичное представление числа типа double или float? #11
Цитата Сообщение от Evg Посмотреть сообщение
Не знаю, что ты там конкретизировал, но я так и не понял, ты хочешь понять, как вообще плавающие числа в двоичной системе представляются или как они хранятся в машине

Можешь пока тут почитать http://ru.wikipedia.org/wiki/Плавающая_запятая
Я вообще хотел faq по этому вопросу написать, но никак руки не доходят. А объяснить на пальцах быстро не получится
спсб вопрос был про цифр с плавающей точкой
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
04.11.2009, 16:01     2-ичное представление числа типа double или float? #12
Цитата Сообщение от Hayk Посмотреть сообщение
спсб вопрос был про цифр с плавающей точкой
Ты можешь внятно и членораздельно задать свой вопрос?
Hayk
2 / 1 / 0
Регистрация: 28.08.2009
Сообщений: 16
04.11.2009, 16:06  [ТС]     2-ичное представление числа типа double или float? #13
Цитата Сообщение от Evg Посмотреть сообщение
Ты можешь внятно и членораздельно задать свой вопрос?
как число типа дабл пишется в двоичной форме(по кокому алгоритму делается перевод?)
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
04.11.2009, 16:13     2-ичное представление числа типа double или float? #14
Цитата Сообщение от Hayk Посмотреть сообщение
как число типа дабл пишется в двоичной форме(по кокому алгоритму делается перевод?)
Есть два совершенно непересекающихся вопроса:
1. Двоичная запись действительных чисел (грубо говоря, как записывать на листочке)
2. Представление действитеельных чисел в машине. Запись числа на листочке НЕ совпадает с машинным представленим (хотя для целых чисел они, условно, совпадают)

С ходу что-то ссылки на первое и второе не найду. Хотя и на форуме они встречались не раз, и объяснения даже какие-то были
Hayk
2 / 1 / 0
Регистрация: 28.08.2009
Сообщений: 16
04.11.2009, 16:16  [ТС]     2-ичное представление числа типа double или float? #15
Цитата Сообщение от Evg Посмотреть сообщение
Есть два совершенно непересекающихся вопроса:
1. Двоичная запись действительных чисел (грубо говоря, как записывать на листочке)
2. Представление действитеельных чисел в машине. Запись числа на листочке НЕ совпадает с машинным представленим (хотя для целых чисел они, условно, совпадают)

С ходу что-то ссылки на первое и второе не найду. Хотя и на форуме они встречались не раз, и объяснения даже какие-то были
2.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
04.11.2009, 16:18     2-ичное представление числа типа double или float? #16
По первому вопросу: Формат данных с плавающей точкой
По второму вопросу: http://www.softelectro.ru/ieee754.html, но не слишком доходчиво
blackswan
12 / 12 / 0
Регистрация: 08.07.2009
Сообщений: 61
04.11.2009, 17:41     2-ичное представление числа типа double или float? #17
вспомню свои знания, например, тип с плавающей запятой одинарной точности, он же float (32 бита всего) представлен в виде трёх компонент, которые идут в представлении в таком порядке: знак числа (1 бит), порядок числа (8 бит), мантисса числа (23 бита).
Знак числа может быть 0 или 1, если 1, то отрицательный.
Порядок числа - хранит степень 10-ти, на которую надо умножить мантиссу, чтоб получить само число, порядок может принимать значения от -128 до 127, но насколько я помню, в х86 принято хранить его со смещением, т.е. к настоящему порядку прибавляется 128 и он хранится только в положительном виде.
Мантисса - хранит значимые цифры числа, причем в данном случае в нормализованном виде, т.е. в виде наибольшей десятичной дроби, меньшей 1. Но так как такая последовательность всегда будет начинаться с двоичной единицы, то для экономии и увеличения разрядности её "сдвигают" в первый целый разряд и как бы подразумевают, а первой в последовательности мантиссы становится вторая двоичная цифра (это может быть 0 и 1). Да, и еще отрицательные числа хранятся в дополнительном коде. С double то же самое, только размер порядка и мантиссы побольше, кажется 11 и 52 соответственно.
AngeL (c)
3 / 3 / 1
Регистрация: 05.09.2008
Сообщений: 6
07.12.2009, 12:07     2-ичное представление числа типа double или float? #18
Читай здесь
Подробнее нужно?
И зачем тебе? =) Ты часом не физтех?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2011, 09:08     2-ичное представление числа типа double или float?
Еще ссылки по теме:

Можно ли из числа типа double получить 2 числа типа int? C++
C++ Как проверить вводилось ли число (типа double или float) в консоль
Преобразовать 2 числа int в 1 число float(double) | double int1.int2 C++

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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.06.2011, 09:08     2-ичное представление числа типа double или float? #19
Цитата Сообщение от Iworb Посмотреть сообщение
double означает по умолчанию double int
C++
1
double
по дефолу соответсвует одной из реализаций
Код
real8
- восьмибайтному вещественном утипу, у которого и мантисса, и порядок имеют знаки.

Добавлено через 1 минуту
Цитата Сообщение от Iworb Посмотреть сообщение
11111000111,110101
В памяти запятая не ставится, а подразумевается, а ТВ запостил сырые биты.
Yandex
Объявления
09.06.2011, 09:08     2-ичное представление числа типа double или float?
Ответ Создать тему
Опции темы

Текущее время: 20:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru