I am trying to convert a 32-bit hexadecimal expression to a single precision number in Matlab.
The num2hex function num2hex great for both. For instance,
>> b = 0.4
b =
0.400000000000000
>> class (b)
ans =
double
>> num2hex (b)
ans =
3fd999999999999a
>> num2hex (single (b))
ans =
3ecccccd
However, this does not work the other way around. The hex2num function hex2num converts a hexadecimal expression to double. In this way,
>> b = 0.4
b =
0.400000000000000
>> num2hex (single (b))
ans =
3ecccccd
>> hex2num (ans)
ans =
3.433227902860381e-006
Matlab simply strips zeros to make it 64-bit hexadecimal. Is there any way to do this conversion?
source share