Agilent Vee 或 Matlab:4 字节 ASCII 到浮点数

Agilent Vee or Matlab: 4 byte ASCII to floating point

我目前有一个仪器发送 4 个字节代表一个小端格式的 32 位浮点数,数据如下:

Gz*=   
<«�=  
N×e=  

或这个

à|ƒ=  

在 matlab、Agilent vee 和手动中是否有针对此的转换

只是含蓄!

    >> data = ['Gz*=';'<«�=';'N×e=']

data =

Gz*=
<«�=
N×e=
>> data+0

ans =

      71         122          42          61
      60         171       65533          61
      78         215         101          61

data+0 强制将其解释为一个很好的数字。

如果它被反向解释(我不确定 MATLAB 是大端还是小端)只需使用 swapbytes 函数。

要将 char 的数组转换为 single,您可以使用 typecast:

c = 'Gz*=';
f = typecast(c, 'single')

f =  0.041621