wdyjz 发表于 2010-9-25 17:50:46

labview里面怎么把4字节16进制浮点数转化为10进制数


将从串口采集的32位16进制补码转化为浮点数;
比如:42C80000---》100

cpubbsdongjt 发表于 2010-10-16 14:42:10

谢谢!!

ljp3213 发表于 2010-11-15 10:59:36

版主,后面板的密码是什么啊,谢谢

haiou 发表于 2011-5-22 19:42:50

(1)下位机接收到如下16进制的数据
06 2D 2F 02 5B 2D 0C 2B 99 0D CF 21 00 00 00 00 00 00 00 00 05 27 26 9A
6C D8 0D 2A 8B F7 0E 25 00 9B 3C 9B 0C F1 B7 A 0 03 32 EC 7B AB B9 0C 3E
68 9B 00 00 66 9E 3A E7 B5 37 02 F1 D6 0D 0A

我想转换成对应的ASCAll码字符串数据
(编号)    615 5 14 3
(状态)    03   0 00
(信噪比)43 35 38 41 50
(相位)    3 081 795. 156 0 2 529 906. 824 39 744. 615 47 - 1 279 260. 241
(距离)   20 418 388. 5 0 22 089 232. 1 21 716 754. 6 20 541 664. 3
(星期数)751
(时间s) 26 277. 988 263 735
    请问怎么进行转换??括号里的只是解释部分,本来没有。

(2)我想给下位机发送16进制的命令,例如:我在字符串输入控件中输入正常显示的字符串命令,怎么通过里面的程序转换成16进制的字符串,再赋给visawrite节点,写入串口?

请大哥帮一下忙,小弟万分感谢!!

wdyjz 发表于 2010-11-25 20:50:37

我是用type case做的;
也可以参考飞雨天版主提出的 flaten to string & unflatern string( numeric 选板里)
http://cpubbs.com/bbs/forum.php?mod=viewthread&tid=19772

wdyjz 发表于 2010-11-25 20:51:08

wdyjz@126.com

huyulong369 发表于 2022-10-26 14:29:34

labview里面怎么把8字节16进制浮点数转化为10进制数

wdyjz 发表于 2026-5-28 19:52:55

在 LabVIEW 中将四字节(32 位)数据转换为单精度浮点数(SGL),核心方法是使用“类型转换”(Type Cast)函数,确保输入为 U32 且输出设为 SGL(单精度浮点数),按 IEEE 754 标准解释字节。

- 若输入是 十六进制字符串(如 `"40490FDB"`):先用 “十六进制字符串至数值” 转为 U32,再用 “类型转换”(右键设输出为 SGL)得浮点数。
- 若输入是 字节数组(如从串口收到的 4 字节):可直接 “类型转换”(输入接 U8 数组,输出设为 SGL),但需注意字节序(大端/小端);若结果异常,插入 “交换字节” 函数(编程 → 数值 → 数据操作)。
- LabVIEW 的 “类型转换” 不进行数值缩放,而是按二进制位强制 reinterpret,等效于 C 语言的 `*(float*)&u32_value`。
- 确保四字节内容符合 IEEE 754 单精度格式,否则可能输出 `NaN`、`Inf` 或无意义值。

无需手动解析符号/指数/尾数,LabVIEW 自动按 IEEE 754 处理。若处理通信数据(如 Modbus),常需先拼接字节、判断字节序,再 Type Cast。
页: [1]
查看完整版本: labview里面怎么把4字节16进制浮点数转化为10进制数