Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 10
1

Битовое представление вещественного числа, ошибка в коде

21.02.2017, 22:29. Показов 1039. Ответов 1
Метки нет (Все метки)

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
#include <iostream>
using namespace std;
 
void binary (double x);   //функция вывода представления числа через объединение
 
int main()
{
double x;
cout << "vvedite x" <<"  ";
cin >> x;
binary (x);   //функции передается вещественное число
system ("pause");
return 0;
}
 
void binary (double x)
{int j,i;
 union {
        double ss;
           unsigned char c[sizeof(double)];
   } cod;
 cod.ss = x; //переменная объединение получила вещественное значение х
               //далее переменная рассматривается как массив байтов,
               //к каждому элементу которого применима побитовая операция &
 for (j = sizeof (double)-1; j >= 0; j--)
   {
    cout << "dvoichnoe predstavlenie byte " << j << ":";
    for (i = 128; i; i >>= 1) //цикл изменения значения переменной i
        // для выделения очередного бита, i=128 – для выделения бита №7
    if ( i & cod.c[j] ) cout << "1";   //выделение бита
    else cout<<"0";
    cout<<"\n";
 }
}
Программа работает, но работает странно, приписывает лишние единицы в байты. При изменении всех типов на инт работает нормально, но с double происходят непонятные вещи. Люди добрые, помогите, буду признателен.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2017, 22:29
Ответы с готовыми решениями:

Получить машинное представление 64-битного вещественного десятичного числа (15,92), ответ в шестнадцатеричном коде
Дано 2 задания: 1) Получить машинное представление 64-битного вещественного десятичного числа...

Битовое представление числа, старший байт
Здравствуйте, программисты. Имеется такой вот код. Все в это коде абсолютно понятно, не могли бы...

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

Вывести битовое представление целого числа со знаком
Проверьте пожалуйста код, просто выдает ошибки задание было следующее: Ввести из стандартного...

1
28 / 28 / 23
Регистрация: 18.04.2015
Сообщений: 81
21.02.2017, 22:47 2
Почитайте про хранение в памяти чисел двойной точности. Например на википедии.
В строке
C++
1
 i & cod.c[j]
В случае double вы получаете символ из мантиcсы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2017, 22:47

Вывести битовое представление целого числа со знаком
как можно упростить данный код и исправить ошибки? signed int b; signed int c; signed int d;...

Вводим n. Нам нужно битовое представление этого числа
Вводим n. Нам нужно битовое представление этого числа Как-то не получается у меня с этой темой

Представление вещественного числа
Ребята, как представить вещественное число в таком формате...

Машинное представление вещественного числа
Записать машинное представление вещественного числа в коротком, длинном и расширенном форматах в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru