NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

二进制数字的一个运算实现

已解决!
转到解答

要实现这样一个算法。对二进制进行变换,比如二进制数0110,从左往右,如果1的个数是奇数,该1后面的数就取反,如果1的个数为偶数,则其后面的数不变,如0110变为0100,0100变成0111,0111变成0101,这个二进制数我想用一个一维数组进行输入,求高手帮帮忙,谢谢了。

0 项奖励
1 条消息(共 8 条)
4,921 次查看

我写了一个程序,但是判断完1个数的奇偶后,要移到下一位去取反或不变,到这一步卡住了,程序框图如下

裁剪_4.jpg裁剪_3.jpg

0 项奖励
2 条消息(共 8 条)
4,900 次查看

litexie 已写:

要实现这样一个算法。对二进制进行变换,比如二进制数0110,从左往右,如果1的个数是奇数,该1后面的数就取反,如果1的个数为偶数,则其后面的数不变,如0110变为0100,0100变成0111,0111变成0101,这个二进制数我想用一个一维数组进行输入,求高手帮帮忙,谢谢了。


没看明白。

 

0110---》共有2个1,应该不变,如何变成0100?,详细解释一下

 

 

陈树学
QQ:276509891 .
EMAIL:CSXCS_366@126.COM
qq群:78561268 80754347 37591940
http://labview.weebly.com/
新书《LabVIEW实用工具详解》已经发售,敬请关注。
3 条消息(共 8 条)
4,893 次查看

 


@csxcs_366 wrote:

litexie 已写:

要实现这样一个算法。对二进制进行变换,比如二进制数0110,从左往右,如果1的个数是奇数,该1后面的数就取反,如果1的个数为偶数,则其后面的数不变,如0110变为0100,0100变成0111,0111变成0101,这个二进制数我想用一个一维数组进行输入,求高手帮帮忙,谢谢了。


没看明白。

 

0110---》共有2个1,应该不变,如何变成0100?,详细解释一下

 

 


I was wondering about that too... thought my Chinese Language was bad 😉

 

Ian F
Since LabVIEW 5.1... 7.1.1... 2009, 2010, 2014
依恩与LabVIEW
LVVILIB.blogspot.com
0 项奖励
4 条消息(共 8 条)
4,891 次查看

是这样:0110,从左往右开始,遇到第一个1,1的总个数为1(奇数)则后面的数要取反,则第三位上的1取反变为0,但是第三位上原来的1仍然计入1的个数,则到第三位,1的总个数为2(1的总个数计算是取原始数1的个数),则后面的数不变,即变成0100。如果位数更多。如010110,就变为011011,不知道我说清楚了没,呵呵

0 项奖励
5 条消息(共 8 条)
4,878 次查看

同楼上,另外我列出四位二进制数的变换对应关系,第一行是原始数,第二行是对应的变换后的数。

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0000 0001 0011 0010 0111 0110 0100 0101 1111 1110 1100 1101 1000 1001 1011 1010

0 项奖励
6 条消息(共 8 条)
4,876 次查看
解答
已被主题作者 litexie 接受

litexie 已写:

同楼上,另外我列出四位二进制数的变换对应关系,第一行是原始数,第二行是对应的变换后的数。

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0000 0001 0011 0010 0111 0110 0100 0101 1111 1110 1100 1101 1000 1001 1011 1010


 QQ截图未命名.jpg

陈树学
QQ:276509891 .
EMAIL:CSXCS_366@126.COM
qq群:78561268 80754347 37591940
http://labview.weebly.com/
新书《LabVIEW实用工具详解》已经发售,敬请关注。
7 条消息(共 8 条)
4,867 次查看

好犀利啊,赞啊,谢谢了极度高兴的表情

0 项奖励
8 条消息(共 8 条)
4,863 次查看