我在Matlab中遇到了将32位十六进制表达式转换为单精度数的问题。num2hex函数对这两种情况都可行。例如,
b = 0.4 class(b) num2hex(b) num2hex(single(b))
但是,这种方法不能逆向操作。hex2num函数只能将十六进制表达式转换为双精度数。所以,
b = 0.4 num2hex(single(b)) hex2num(ans)
Matlab会简单地填充零以使其成为64位十六进制数。是否有一种方法可以执行此转换?
b = 0.4 class(b) num2hex(b) num2hex(single(b))
但是,这种方法不能逆向操作。hex2num函数只能将十六进制表达式转换为双精度数。所以,
b = 0.4 num2hex(single(b)) hex2num(ans)
Matlab会简单地填充零以使其成为64位十六进制数。是否有一种方法可以执行此转换?
sprintf('%bx',b)
和sprintf('%tx',single(b))
。 - Amro