С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
Elaias
1

Вывод числа в двоичном представлении

28.09.2013, 13:46. Показов 3499. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача: представить число 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 восьмерки некорректны, вторые - корректны, начало числа
 
};
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2013, 13:46
Ответы с готовыми решениями:

Вывести в двоичном представлении все натуральные числа от 1 до N
Задача : вывести в двоичном представлении все натуральные числа от 1 до N. Вопрос : есть ли...

В двоичном представлении числа подряд стоят 2 единицы
Здравствуйте. Не подскажете, при вводе какого числа программа выводит неверный результат? Все мои...

Определить, каких бит (0 или 1) больше в двоичном представлении числа
Напишите программу, в которой необходимо определить, каких бит (0 или 1) больше в двоичном...

Сохранить в множество те числа, в двоичном представлении которых ровно n единиц
Задан диапазон целых чисел. Сохранить в множество те числа, в двоичном представлении которых ровно...

2
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
28.09.2013, 14:12 2
В первом приближении смущает %e, почему не %lf?
0
Заблокирован
Автор 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 секунд

Не по теме:

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

0
28.09.2013, 14:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2013, 14:29
Помогаю со студенческими работами здесь

Определить количество битов, равны единице, в двоичном представлении числа
Напишите программу, в которой необходимо определить количество битов, равны единице, в двоичном...

Произвести в двоичном представлении числа обмен битов с заданными номерами
Дано короткое целое неотрицательное число. Произвести в его двоичном представлении обмен битов с...

Подсчетать количество единичных разрядов на нечетных местах в двоичном представлении числа
4. Записать программу для подсчета количества единичных разрядов на нечетных местах в двоичном...

Определить в двоичном представлении числа максимальное количество расположенных рядом единиц
Дано короткое целое неотрицательное число. Определить в его двоичном представлении максимальное...


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

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