Перевод числа представленного в экспоненциальной записи в двоичную систему - C (СИ)
Формулировка задачи:
Всем привет! Столкнулся с такой задачкой: Нужно написать программу для перевода числа в научной нотации
(экспоненциальная запись ) в двоичную систему. Очень нужна помощь... в субботу уже сдавать надо, а у меня пока никаких мыслей по поводу написания програмки.
Решение задачи: «Перевод числа представленного в экспоненциальной записи в двоичную систему»
textual
Листинг программы
void p_bin(unsigned int x) { int i = sizeof(x) * 8 - 1; puts(""); for (; i >= 0; --i) printf("%d", x >> i & 1); } int main(void) { float x; scanf("%e", &x); printf("%e\n", x); int fl = *(int*) &x; p_bin(fl); return 0; }
Объяснение кода листинга программы
- В функции
p_bin
объявлена переменнаяi
типаint
со значениемsizeof(x) * 8 - 1
, гдеx
- это переменная типаunsigned int
. Это значение используется для вычисления количества циклов в циклеfor
. - В функции
main
объявлена переменнаяx
типаfloat
, которая инициализируется значением, введенным пользователем с помощью функцииscanf
. - Затем в функцию
printf
передается значение переменнойx
для вывода на экран. - Далее переменная
fl
инициализируется значением, полученным из указателя на первый байт переменнойx
при приведении типа кint
. - В конце функции
main
вызывается функцияp_bin
с аргументомfl
. - Значение переменной
i
в функцииp_bin
используется в качестве параметра в операторе>>
для сдвига байтов вправо. - Результат этого сдвига сохраняется в переменной
x
, а затем используется в операторе&
для получения бита из числа. - Значение этого бита затем выводится на экран с помощью функции
printf
. - Цикл
for
продолжается до тех пор, пока значениеi
больше или равно нулю. - Значение переменной
fl
используется в качестве аргумента при вызове функцииp_bin
в функцииmain
. - В конце функции
main
возвращается значение 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д