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