Перевод числа с плавающей точкой в двоичную форму - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д