Задание, которое вы описываете, состоит из трех частей:
Изучите символы числительного и преобразуйте их в число с плавающей запятой.
Вывести значение числа с плавающей запятой.
Печать байтов числа с плавающей запятой.
Для 1 неясно, намереваетесь ли вы написать код, чтобы сделать это самостоятельно или использовать библиотечную процедуру. Для библиотечных подпрограмм используйте scanf
(для чтения из ввода) или sscanf
(для чтения из массива char
). Если вы хотите сделать это самостоятельно, то на уровне, который вы описываете, я не ожидаю, что точное решение требуется. В этом случае вы можете: Определить степень десяти, соответствующую каждой цифре, умножить цифру на степень десяти и суммировать произведения. Например, в «1.234500e-04» вы найдете показатель «-04», преобразуете его в int
, затем умножите 1 на pow(10, -5)
, умножите 2 на pow(10, -6)
и т. Д., И затем добавьте продукты.
Для 2 напечатайте, используя printf
.
Для 3 используйте memcpy
, чтобы скопировать байты из float
в uint32_t
(посмотрите заголовок <stdint.h>
) и напечатайте его байты с помощью printf
(посмотрите заголовок <inttypes.h>
для правильный спецификатор формата для использования). Либо используйте memcpy
, чтобы скопировать байты из float
в массив char
, затем напечатайте char
, используя printf
с указателем формата, который печатает шестнадцатеричное число.