MATLAB浮点数与十六进制(浮点数)转换:
笔者最近在使用MATLAB搞串口工具,想要实现浮点数与hex(16进制浮点数)之间的转换。
在网上找到了实现的方法,在这里分析一下。
浮点数转HEX转换:
浮点数转32位HEX的函数如下:
>> a = -7.0000e-06;
>> b = sprintf('%tx',single(a))
b = 'b6eae18b'
HEX转浮点数:
16进制浮点数转换为浮点数的方法为:
>> b = 'b6eae18b';
>> c = typecast(uint32(hex2dec(b)),'single')
c = -7.0000e-06
解决方案:
单片机和MATLAB的浮点数与16进制数的转换格式为 IEEE 754。
我使用的网络转换工具是: