Ты почти понял. Я не уверен, что выводит на экран отладчик, но это не ваш код. Может это адрес?
Фактическое значение с плавающей запятой составляет 0x41500000
. Вы можете проверить это здесь: IEEE-754 преобразователь с плавающей запятой .
Если ссылка не работает, вам придется самостоятельно найти онлайн анализатор / описание с плавающей запятой.
Вы сделали это правильно, но вы забыли, что процессоры Intel x86 (я полагаю, ваш процессор Intel x86) little-endian . Это означает, что старшие байты значимости находятся на старших адресах памяти. Таким образом, вы должны распечатать байты в обратном порядке, чем вы печатаете их, например:
printf("0x%02hhX%02hhX%02hhX%02hhX\n", bar[3], bar[2], bar[1], bar[0]);