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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
 
void PrintDblAsBin(const double number)
{
   int         i;
   int         j;
   int         len;
   const char  *num;
 
   len = sizeof(double) - 1;
   num = (char*)&number;
   for (i = len; i >= 0; i--)
      for (j = 7; j >= 0; j--)
         printf("%i", (num[i] >> j) & 1);
   printf("\n");
}
 
int main(int argc, char* argv[])
{
   PrintDblAsBin(0.0);
   PrintDblAsBin(1.0);
   PrintDblAsBin(2.34);
   PrintDblAsBin(3.1416);
   PrintDblAsBin(9.0);
   PrintDblAsBin(-0.0);
   PrintDblAsBin(-1.0);
   PrintDblAsBin(-2.34);
   PrintDblAsBin(-3.1416);
   PrintDblAsBin(-9.0);
   return 0;
}

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


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

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

10   голосов , оценка 4 из 5
Похожие ответы