У меня есть 4 байта, такие как со значением в качестве знака без знака: 63 129 71 174.
Предположительно, при преобразовании его в число с плавающей точкой оно должно стать 1.0099999904632568 .
Однако все, что я получил взамен, это 1.01, что недостаточно для точности того, что я делаю.
Я использовал популярные методы, такие как memcpy или uninion, но безрезультатно, что заставило меня поверить ...это какое-то ограничение в C?
Если да, то каково оптимальное решение?Спасибо.
РЕДАКТИРОВАТЬ: Извините за плохой пример.Я должен был выбрать лучший для моего случая.Считайте, что это 4 байта: 0 1 229 13.
Он очень маленький, как действительно очень маленький.Тем не менее, это 4 байта, поэтому он все равно представляет число с плавающей запятой .Однако C просто вернет 0. Я поставил 16 после десятичного числа, и он просто не работает.
Так почему и как работать с таким числом?
РЕДАКТИРОВАТЬ 2: Извините.Мой друг напутал.Она дала мне последовательность из 4 байтов и сказала, что это 32-битное число с плавающей запятой, но оказалось, что это 32, но без знака int.Это в значительной степени испортило весь мой день.ДЕЙСТВИТЕЛЬНО извините за беспокойство.
Полагаю, напрашивается вывод: не всегда доверяйте своему другу.