(笔记)labview各种进制转换(通讯得到的负数补码转换成负数原码)

起因:
我是因为传感器手持显示器读到负的值,传感器说明书说通讯回馈负值是以补码形式,因此开始研究如何显示。
在这里插入图片描述

前情提要:
modbus 485得到的是16进制

(右键选择16进制,否则是乱码)
在这里插入图片描述
在这里插入图片描述

也就是说已知原码是负数, 16进制的补码由上面一顿操作 转换成了负数的原码
即图中:由0.2得到了4.2
在这里插入图片描述

1. 16进制 转换成16进制字符串

注意:需要先把16进制 转换成16进制字符串
参考LabVIEW学习:十六进制和十六进制字符串相互转化(老哥很给力,直接贴的百度云)

转换成16进制字符串后才可以,继续进行进制转换。
在这里插入图片描述

2. 16进制(字符串)转10进制(数值)

在第1节的基础上,进行转换。

在这里插入图片描述
编程-》字符串-》数值/字符串转换-》十六进制数字符串至数值转换 (函数)
在这里插入图片描述

3. 10进制(数值)转2/10/16进制(字符串)

在这里插入图片描述
数值(十进制)转十进制字符串:编程-》字符串-》数值至十进制数字符串转换 (函数)
格式化值:编程-》字符串-》格式化值 (函数)

%b二进制
%x十六进制

补充1:字符串与数字格式相互转换

数值(十进制)转十进制字符串:编程-》字符串-》数值至十进制数字符串转换 (函数)
在这里插入图片描述
字符串转数值:可以用扫描

补充2:二进制,8进制,16进制,10进制转换

参考:二进制,8进制,16进制,10进制转换
数值转字符串:使用格式化值
在这里插入图片描述

补码

基础知识参考原码、反码、补码知识详细讲解(此作者是我找到的讲的最细最明白的一个)

已知原码为负数,补码推原码就是:

例:
补码:1111 1111 1111 1111 1111 0011 1011 1101
(可以打开电脑的计算器直接复制进去)

在这里插入图片描述

先最后一位减1,

1111 1111 1111 1111 1111 0011 1011 1100

再除了第一位 剩下的全部取反。

1 然后都是0 1100 0100 0011
将1100 0100 0011复制进计算器可见十进制数值

再将他们十进制
在这里插入图片描述
在这里插入图片描述

LabVIEW中进行进制转换可以使用"扫描值功能"。要将十六进制字符串换为其十进制表示形式,可以使用该功能。首先,将"扫描值功能"放置在程序中,然后右键单击字符串输入端子,选择创建控件,生成一个字符串常量。接下来,右键单击格式字符串输入端子,选择创建常量,并在常数中输入"%x"来指定十六进制格式。然后,右键单击默认输入端子,选择创建常量,并将其表示形式更改为Integer,以适应所需的值范围。最后,右键单击值输出端子,选择创建指示器,以显示换后的结果。这样就可以将十六进制转换为十进制了。\[1\] 如果要将信息以十六进制形式发送回仪器,可以使用LabVIEW中的字符串和数字格式相互换的功能。可以将十进制换为十六进制字符串,然后发送给仪器。\[2\] 需要注意的是,在LabVIEW中进行进制转换时,要了解byte的概念。在文本形式的编程语言中,一个byte占一个字节(八位二进制数据),而一个十六进制由4个二进制组成。因此,两个十六进制可以组成一个byte。\[3\] #### 引用[.reference_title] - *1* [在LabVIEW中将十六进制转换为十进制或ASCII](https://blog.youkuaiyun.com/qq_31882619/article/details/124401530)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [(笔记labview各种进制转换通讯得到的负数补码转换成负数原码)](https://blog.youkuaiyun.com/jingzilideniu/article/details/127075056)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [LabVIEW学习:十六进制和十六进制字符串相互化](https://blog.youkuaiyun.com/sdweixiaocike/article/details/85088478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是孑然呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值