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

вывод числа в двоичном представлении - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Elaias
Сообщений: n/a
28.09.2013, 13:46     вывод числа в двоичном представлении #1
Задача: представить число long double в двоичном коде. Использую для этого union, но на экран упорно выводится только половина числа. Почему??

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
union LongD
{
    long double l;
    char ld1[8];
};
 
void main(void)
{
    LongD y;
    printf("\nenter long double: ");
    scanf("%e",&y.l);
    printf("%d\n%d\n", sizeof(y.l), sizeof(y.ld1[0])); //проверка, здесь выводится 8 и 1
    for(int i=7; i>=0; i--)
    {
        for(int j=7; j>=0; j--)
            printf("%d", ((y.ld1[i]>>j)&1));
        printf("\n");
    }; //первые 4 восьмерки некорректны, вторые - корректны, начало числа
 
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2013, 13:46     вывод числа в двоичном представлении
Посмотрите здесь:

C++ сколько единиц содержится в двоичном представлении переменной типа char
C++ Вывести введённое неотрицательное число в двоичном, восмиричном и шестнадцатеричном представлении
C++ Строквой литерал в двоичном представлении
Определить, каких цифр больше в двоичном представлении натурального числа N – нулей или единиц C++
C++ Написать функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении x
Вывод десятичного числа в двоичном виде C++
Вывести в двоичном представлении все натуральные числа от 1 до N C++
Определить в двоичном представлении числа максимальное количество расположенных рядом единиц C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
28.09.2013, 14:12     вывод числа в двоичном представлении #2
В первом приближении смущает %e, почему не %lf?
-=ЮрА=-
Заблокирован
Автор FAQ
28.09.2013, 14:29     вывод числа в двоичном представлении #3
Для начала следует точно выяснить размер типа long double кэп очевидность подсказывает что это sizeof(double) + sizeof(long) итого 12 байтов, но никак не 8-мь.
http://codepad.org/MgbJBY7D
https://ideone.com/4bWCKW
https://ideone.com/ogo9eV
http://codepad.org/fPLxqrhh
Далее совсем не ясно зачем в проекте объединение, просто чтобы было?
Ну и наконец где уверенность что scanf с параметром %е воспринимает лонг дабл?
http://cpp.com.ru/shildt_spr_po_c/13/scanf.html небольшая выжимка
...Использование же модификатора L означает, что полученное значение присвоится переменной типа long double.
Добавлено через 56 секунд

Не по теме:

Вобщем кроме сдвига и двоичной маски я ничего рационального в коде не увидел

Yandex
Объявления
28.09.2013, 14:29     вывод числа в двоичном представлении
Ответ Создать тему
Опции темы

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