labVIEW移位寄存器的问题

设计的目的就是输入一组数据,比如101,然后移位寄存器的i-1 和i-2刚开始的初值为0,如图所示。
之后通过2个复合运算(就是异或)形成2个数,再从for循环输出形成一维数组,如图所示。
当第一个数据1输入时,三个移位寄存器的值从上到下就变成了100,复合运算1的输出为1,复合运算2的输出为1,encoded输出就是11;
当第二个数据0输入时,三个移位寄存器的值从上到下就变成了010,复合运算1的输出为1,复合运算2的输出为0,再加上之前的11,encoded输出就是1110;
当第三个数据1输入时,三个移位寄存器的值从上到下就变成了101,复合运算1的输出为0,复合运算2的输出为0,再加上之前的1110,encoded输出就是111000;
我的程序框图如下

然而不知道为什么,输入101时,输出的是110123 而且无论怎么改变第二个和第三个数据,encoded data就是不变~~而且最纳闷的就是为什么异或出来的结果会有2和3....
求大神赐教!
本人小白,求具体连接图,谢啦~

PS:会有财富值赠送的哦~~~

首先你对移位寄存器的赋值是错的,下一次的赋值并不是input data里面的下一个元素。赋值的是i+1,也就是1,2,3,这就不难解释为什么异或出来的有2和3了。

其次,你的数组输出那里有问题,要么你启用自动索引,那么出来的是一个二维数组,输出二维数组之后再转换成一维数组。或者采用以下方法,追加数据,直接输出一维数组。

温馨提示:答案为网友推荐,仅供参考
相似回答