日期:2014-05-17  浏览次数:21527 次

C# 如何把二进制里的"1"变"0"把"0"换成"1"呢
如题,我要实现 假设一个随即长度的二进制数 “111001011”用循环判断 改成“000110100”该如何实现呢,到底有没有可能实现呢?

------解决方案--------------------
循环就免了,用规则异或:
有多少位你就创建多少位的1,然后^11111...(和你传入的二进制长度一样);

------解决方案--------------------
不用循环,~运算符按位取反就可以了。
------解决方案--------------------
http://msdn.microsoft.com/zh-cn/library/system.collections.bitarray.aspx
------解决方案--------------------
字符串的话,
string s = "111001011";
s = new string(s.Select(x => x == '0' : 1 : 0).ToArray());
------解决方案--------------------
多看书 , 先把 | ^ % || && 看懂了再说
------解决方案--------------------
取反搞定
------解决方案--------------------
这个是那个帖子
http://topic.csdn.net/u/20120619/22/a828f857-3917-452c-a71c-c084642861ef.html
------解决方案--------------------
发错地方了 这个没用的不用看了
探讨

这个是那个帖子
http://topic.csdn.net/u/20120619/22/a828f857-3917-452c-a71c-c084642861ef.html

------解决方案--------------------
异或取反+1
------解决方案--------------------
有长度length和数值value就可以直接算了:2 ^ length - value

如“111001011”长度为9,value是459,结果就是2 ^ 9 - 459 = 512 - 459 = 53 (110101)
------解决方案--------------------
按位 取反啊,LZ 
“ ~ ”就是这个符号
1、运算规则
~是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变1,1变0。
2、用途
使一个整数a的最低位为0,可以用:a=a&~1;
 3、例如~9的运算为: ~(0000000000001001)结果为:1111111111110110
你补充一下位运算的知识
http://www.cnblogs.com/NetBelieve/archive/2012/07/30/2615006.html
------解决方案--------------------
又学习到新东西了 愁啊 永远都学不完