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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 93, средняя оценка - 4.91
Hayk
2 / 1 / 0
Регистрация: 28.08.2009
Сообщений: 16
#1

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

04.11.2009, 13:45. Просмотров 12654. Ответов 18
Метки нет (Все метки)

помогите разобратся,,,, плиз))
double a=1991.829;
a==01000000 10011111 00011111 01010000 11100101 01100000 01000001 10001001;
скажите пожалуйста как число а преврашается вот в это?(какой бит чему ответственен?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2009, 13:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 2-ичное представление числа типа double или float? (C++):

Получить q ичное представление числа - C++
Даны натуральные числа p и q(q>=2).Получить q-ичное представление числа p в виде такой последовательности a...a целых неотрицательных чисел...

Как проверить вводилось ли число (типа double или float) в консоль - C++
Как проверить вводилось ли число (типа double или float) в консоль?

Преобразовать 2 числа int в 1 число float(double) | double int1.int2 - C++
Всем привет. Изучая азы C++, столкнулся с такой проблемой. Есть два значения типа int, их необходимо преобразовать в одно значение типа...

Представление в памяти компьютера типа double - C++
нужна помощь в представление ВПК (в памяти компютера) тип данних double например нам дано такое: double y = -4.8e1 и хочем чтоб...

Внутреннее представление типа Double через Long - C++
Привет. Для оптимизации работы одного вычислительного алгоритма потребовалось найти некое биективное отображение Double <-> Long для...

Сделать вывод типа float в шаблоне вместо double - C++
Здравствуйте,уважаемые пользователи.Недавно начал знакомится с шаблонами, и заметил одну вещь которая не дает мне покоя.Суть вот в чем,...

18
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 424
04.11.2009, 14:09 #2
или мне кажется или double означает по умолчанию double int, a число а - с десятичной точкой (тип float)

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

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

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

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

Добавлено через 1 минуту
11111000111,110101 - вот правильный результат
не брат, ты написал как 1991,829 предстовляется в 2-ичной форме, я написал как число дабл читается в С++, ихочу знать почему именно так
0
ООП
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 13
04.11.2009, 14:14 #4
Если не ошибаюсь, то это для сопроцессора тип.
0
Hayk
2 / 1 / 0
Регистрация: 28.08.2009
Сообщений: 16
04.11.2009, 14:21  [ТС] #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 . . .

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

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

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

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

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

Добавлено через 23 минуты
дайте точный ответ пожалуйста
0
Evg
Эксперт CАвтор FAQ
18377 / 6424 / 441
Регистрация: 30.03.2009
Сообщений: 17,838
Записей в блоге: 28
04.11.2009, 15:57 #10
Цитата Сообщение от Hayk Посмотреть сообщение
ты смотри по више, там я кокретизировал вопрос
Не знаю, что ты там конкретизировал, но я так и не понял, ты хочешь понять, как вообще плавающие числа в двоичной системе представляются или как они хранятся в машине

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

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

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

С ходу что-то ссылки на первое и второе не найду. Хотя и на форуме они встречались не раз, и объяснения даже какие-то были
2.
0
04.11.2009, 16:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2009, 16:16
Привет! Вот еще темы с ответами:

Неправильно работает cout для чисел типа double и float - C++
Здравствуйте. Скажите, почему эта программа выводит на экран число 2, а не 2.5 ? #include &lt;iostream.h&gt; int main() { double...

целая часть float или double - C++
Мне нужно выделить в отдельную переменную целую часть чисел типа float и double. Я пока делаю так: float surplus = float(long...

Создать динамический массив, любого простого типа (например: int, long, float, double) - C++
1. Создать проект, который содержит консольную программу Win32. 2. Создать динамический массив, любого простого типа (например: int,...

Рандомный двумерный массив double или float - C++
#include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; using namespace std; int...


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

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

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