labview实现大小端交换移位

在解码时遇到了大小端交换的问题,需要把高低字节的16进制值进行互换,这里一时间不知道怎么操作,本来打算先把16进制转字节数组,算出字节数组的大小,然后通过模2得到0,1,来判断是否为奇数位和偶数位,因为得到的数据为双数字节,这里只需要实现奇数位偶数位的数据互换就可以了,但是实现过程中发现,当第一个余数为0时,把他插入数组的第二个位置并不能实现,因为此时是一个空数组,最后得到的数据也只是一个数。

因此得到一个结论,空数组不能插入0以外的索引值。

后面改正了一下方法,因为要实现奇数位和偶数位互换,我们可以采取先删除一个,再插入一个的做法,这样的话就不会因为空数组导致不能互换的结果。当余数为0时证明是奇数位的数据进来,我们只需要删除掉当前索引位置的数据,这里给到长度为1索引就用for循环的i值,然后进行删除操作,并把删除后的值通过另一个移位寄存器传过来,传到下一次插入数据备用,当余数为1时间证明已经到了偶数位,我们只需要把上一次删除的数据插入进去,也是利用for循环中i的值,就可以实现大小端数据互换的操作。

这里我给他加了一个校验,防止得到的数据不是偶数位的情况,这样的话就需要去排查一下哪里出了问题。然后跳出一个提示,提醒我们去排查一下。

相关推荐
9稳4 天前
基于组态的双向人行道交通灯控制系统设计
开发语言·网络·数据库·labview·plc
LabVIEW开发4 天前
LabVIEW远程调试实战:从“被迫接受”到“高效真香”
labview
猎头南楼4 天前
新型电力系统下的储能控制仿真:从策略研发到工程落地的关键技术挑战
labview
fanchenxinok5 天前
基于图莫斯的CAN UDS诊断上位机-LabVIEW版本(十七):TOOMOSS_SID19_ReadDTCInformation.vi — 读取DTC信息
labview·dtc·sid19
神电测控5 天前
新品发布:32通道50MS/s同步并行14位采集模块PG-FMC9249(支持任意FPGA/ZYNQ,兼容LabVIEW FPGA软件开发)
fpga开发·labview·ni·神电测控·王电令·ad9249·32通道
电气_空空6 天前
基于 LABVIEW 的虚拟仪器温度检测系统的设计
labview
fanchenxinok6 天前
基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十五):总结篇
labview·uds升级·uds刷写
fanchenxinok6 天前
基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十六):从刷写到诊断的功能扩展
labview·诊断·uds
fanchenxinok6 天前
基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十四):打包与安装应用程序
labview·安装·升级上位机·uds刷写
fanchenxinok8 天前
基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十):TOOMOSS_SID31_RoutineControl.vi — 例程控制
can·labview·uds升级·升级上位机·uds刷写