Перевод числа с плавающей точкой в двоичную форму - C (СИ)

Узнай цену своей работы

Формулировка задачи:

здравствуйте! нужна помощь в выполнении программы для перевода числа с плавающей точкой в двоичную систему счисления. Пробовал записывать в виде 3.14e0, но программа выводит не верные результаты.
Листинг программы
  1. #include <stdio.h>
  2. void exp(unsigned int x)
  3. {
  4. int i = sizeof(x) * 8 - 1;
  5. puts("Binary form os this number is:");
  6. for (; i >= 0; --i)
  7. printf("%d", x >> i & 1);
  8. }
  9. int main(void)
  10. {
  11. float x;
  12. printf("Enter any exponential number:");
  13. scanf("%e", &x);
  14. printf("%e\n", x);
  15. int fl = *(int*) &x;
  16. exp(fl);
  17. return 0;
  18. }

Решение задачи: «Перевод числа с плавающей точкой в двоичную форму»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. void PrintDblAsBin(const double number)
  4. {
  5.    int         i;
  6.    int         j;
  7.    int         len;
  8.    const char  *num;
  9.  
  10.    len = sizeof(double) - 1;
  11.    num = (char*)&number;
  12.    for (i = len; i >= 0; i--)
  13.       for (j = 7; j >= 0; j--)
  14.          printf("%i", (num[i] >> j) & 1);
  15.    printf("\n");
  16. }
  17.  
  18. int main(int argc, char* argv[])
  19. {
  20.    PrintDblAsBin(0.0);
  21.    PrintDblAsBin(1.0);
  22.    PrintDblAsBin(2.34);
  23.    PrintDblAsBin(3.1416);
  24.    PrintDblAsBin(9.0);
  25.    PrintDblAsBin(-0.0);
  26.    PrintDblAsBin(-1.0);
  27.    PrintDblAsBin(-2.34);
  28.    PrintDblAsBin(-3.1416);
  29.    PrintDblAsBin(-9.0);
  30.    return 0;
  31. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы