MATLAB: Hex2num can’t recover value from the hex by num2hex

hex2numMATLABnum2hex

my matlab script
num2hex(single(-1.7783722e-1))
ans =
'be361af6'
and
hex2num('be361af6')
ans =
-5.146794990196213e-09
why I can not recover the original value ?

Best Answer

As the documentation explains, hex2num assumes the hex is a representation of a double, while num2hex also supports the single data type. That means that despite the names, these two functions are not the exact mirror of each other.
It looks like you will have to implement hex2num yourself if you want to have a single as an output.