labview实现大小端交换移位
在解码时遇到了大小端交换的问题,需要把高低字节的16进制值进行互换,这里一时间不知道怎么操作,本来打算先把16进制转字节数组,算出字节数组的大小,然后通过模2得到0,1,来判断是否为奇数位和偶数位,因为得到的数据为双数字节,这里只需要实现奇数位偶数位的数据互换就可以了,但是实现过程中发现,当第一个余数为0时,把他插入数组的第二个位置并不能实现,因为此时是一个空数组,最后得到的数据也只是一个数。
因此得到一个结论,空数组不能插入0以外的索引值。
后面改正了一下方法,因为要实现奇数位和偶数位互换,我们可以采取先删除一个,再插入一个的做法,这样的话就不会因为空数组导致不能互换的结果。当余数为0时证明是奇数位的数据进来,我们只需要删除掉当前索引位置的数据,这里给到长度为1索引就用for循环的i值,然后进行删除操作,并把删除后的值通过另一个移位寄存器传过来,传到下一次插入数据备用,当余数为1时间证明已经到了偶数位,我们只需要把上一次删除的数据插入进去,也是利用for循环中i的值,就可以实现大小端数据互换的操作。
这里我给他加了一个校验,防止得到的数据不是偶数位的情况,这样的话就需要去排查一下哪里出了问题。然后跳出一个提示,提醒我们去排查一下。