如何更新网站快照,单位网站建设汇报材料,网站开发 弹窗,做销售的什么网站好今天在用一个采集模块时#xff0c;发现读出寄存器的数据是不同的#xff0c;它有两种范围#xff0c;一个时十六进制整型#xff0c;一种是有符号位十六进制#xff0c;对应的量程和范围也是不同的#xff0c;针对之前读取温度没有出现负数的情况#xff0c;应该是转成…今天在用一个采集模块时发现读出寄存器的数据是不同的它有两种范围一个时十六进制整型一种是有符号位十六进制对应的量程和范围也是不同的针对之前读取温度没有出现负数的情况应该是转成了16位无符号类型。 接下来我们来转换成16位有符号类型这里也是把读出的16进制字符串格式转换成普通字符串格式然后用labview自带的16进制转数值的函数来实现值得转换。 当得到16进制字符串时我们需要把16进制转换成二进制进行处理但是labview字符串转二进制不太好转这里用到了格式化写入字符串得到一串二进制字符然后判断最高位是否存在来判断得到的数是正数还是负数因为最高位为0时不显示这里就直接用字符串长度判断。 当得到得长度为16时证明最高位是1然后得到的数为负数接下来要对第1位到第15位二进制字符进行处理由于不好进行补码操作这里先把字符串转换成字节数组然后通过字节数组与1进行异或操作得到二进制数的反码然后再把字节数组转换成字符串通过扫描值和格式化写入字符串把二进制数转换成16进制数然后通过十六进制值十进制转换函数转成十进制由于补码要原码取反加一加一的进一操作不太好实现这里就直接在取反之后加一即可然后乘上符号位就得到真值了。 整个函数如下。方便大家使用和学习。也欢迎大家有更好的方法可以分享交流在下方。