C# & | 是什么意思 & 与运算 |或运算 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var i = 1 & 0;//i=0,按位与var j = 1 | 0;//j=1,按位或http://msdn.microsoft.com/zh-cn/library/sbf85k1c(VS.80).aspx 楼主好好看看吧,MSDN上的http://msdn.microsoft.com/zh-cn/library/8xftzc7e.aspx << 左移XX位嘛,多形像。还有>>这是右移 撸主知道什么是bit,什么是byte么? 先从逻辑角度说一下:1.&&是逻辑与,&是按位与。&&只用于布尔值,&可用于布尔值和位。如果把二进制1看作真,0看作假,则&&与&的逻辑结果一致。2.||是逻辑或,|是按位或。||只用于布尔值,|可用于布尔值和位。如果把二进制1看作真,0看作假,则||与|的逻辑结果一致。但是逻辑或与位按或还是有区别:计算 a||b时,若a为true,则不会再对b计算(调用函数或取值)true ||b的写法编译器会直接给出警告:检测到无法访问的代码。计算a|b时,即使a为true也会计算b。private Boolean getTrue(){ System.Diagnostics.Debug.Print("getTrue"); return true;}Boolean b = true | getTrue();仍然会输出"getTrue"。下面的代码作为参考:System.Diagnostics.Debug.Print((0 & 0).ToString());System.Diagnostics.Debug.Print((1 & 0).ToString());System.Diagnostics.Debug.Print((0 & 1).ToString());System.Diagnostics.Debug.Print((1 & 1).ToString());System.Diagnostics.Debug.Print((false & false).ToString());System.Diagnostics.Debug.Print((true & false).ToString());System.Diagnostics.Debug.Print((false & true).ToString());System.Diagnostics.Debug.Print((true & true).ToString());System.Diagnostics.Debug.Print((false && false).ToString());System.Diagnostics.Debug.Print((true && false).ToString());System.Diagnostics.Debug.Print((false && true).ToString());System.Diagnostics.Debug.Print((true && true).ToString());System.Diagnostics.Debug.Print((0 | 0).ToString());System.Diagnostics.Debug.Print((1 | 0).ToString());System.Diagnostics.Debug.Print((0 | 1).ToString());System.Diagnostics.Debug.Print((1 | 1).ToString());System.Diagnostics.Debug.Print((false | false).ToString());System.Diagnostics.Debug.Print((true | false).ToString());System.Diagnostics.Debug.Print((false | true).ToString());System.Diagnostics.Debug.Print((true | true).ToString());System.Diagnostics.Debug.Print((false || false).ToString());System.Diagnostics.Debug.Print((true || false).ToString());System.Diagnostics.Debug.Print((false || true).ToString());System.Diagnostics.Debug.Print((true || true).ToString());输出的结果是0001FalseFalseFalseTrueFalseFalseFalseTrue0111FalseTrueTrueTrueFalseTrueTrueTrue 然后从用途角度说一下。&&、&、||、|都可以处理逻辑。而且||比|还优化了一些。|与&除了可以处理逻辑(不建议)外,最主要的用途是处理二进制的位运算。|相当于“置”或“打开”,&相当于“清零”或关闭。例如,想用8位二进制数表示8个灯泡。0表示灭,1表示亮。10010011表示亮灭灭亮灭灭亮亮。那么,如果要关闭前三个灯,你只需要10010011&00011111。结果是 00010011。&可以这样理解:依照右边的数对左边的数操作:将0所表达的位清零(关闭),保留1所表达的位。你也可以理解为每一位都把看成真0看成假,执行逻辑运算。即相当于十进制的147&31=19。如果我要开启前三个灯,只需要。10010011|11100000。结果是11110011。、|可以这样理解:依照右边的数对左边的数操作:将1所表达的位置1(打开),保留0所表达的位。这相当于147|224=243。使用这种方式,可以用二进制数表示很多状态、报警。 再说一下位运算:<<是左移。>>是右移(有符号)。一些语言提供了无符号右移(>>>)。10000000>>3=00010000十进制就是 128>>3=16。00010000<<2=01000000十进制16<<2=64。通常,为了方便,使用八位无符号的整数作为一个字节(Byte)进行这样的运算。但是请注意:Byte位移之后会变成int类型。 既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。 既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。 既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。不仅是底层,只要你涉及到编程,你都会用到,如果你还没用到,说明你还没有入门! 既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。这个符号不是底层的东西 是常识 既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。不仅是底层,只要你涉及到编程,你都会用到,如果你还没用到,说明你还没有入门!大神说下 什么时候用到过 让小弟也学习下 都是位运算符& 与运算 两位均为真则为真,其他假 1&1才为真,其他假 |或运算 两位不同为真,其他假1|0 或0|1 才为真 ,其他假嘻嘻嘻 还真有空回答他!这种明显 GOOGLE 都可以知道的东西,哎……有一个 送分王子 1、可以表示逻辑 且 、或关系 返回结果是bool值 对应的还有&& ||,至于此时& 与&&的区别就是&就算已经知道返回结果肯定为false了也会把所有的判断都执行一遍,而&&只要确认false,后面的就不会执行2、二进制运算符& 与操作 1 & 0 = 0| 或操作 1 |0 = 1 运算符对应的还有<<左移操作>>右移操作估计lz不是计算机专业出生,或者就是上学时都不去上课的 1&1=11&0=00&0=01|0=11|1=10|0=0真假 你确定你找过?这是 google 的链接!C# 逻辑运算这是百度的:C# 逻辑运算嘴硬有啥用?这是每一本 C# 教科书中的基本教学点。 貌似 && 和 || 是短路运算符 而 & 和 | 是非短路的比如 false && null返回false true || null 返回true而 false & null 返回错误 true | null 返回错误至于二进制编码,貌似用到的概率不高(于c#而言)。用到的时候再搜一下资料就会用了 这个 |和|| &和&&的结果貌似一样 在bool方面 从计算结果上看是一样.但是false && f()函数f不会被执行,因为后面是什么结果都是falsefalse & f()函数f会被执行,虽然最后结果也是false同样的true || f()函数f不会被执行true | f()函数f会被执行因此逻辑运算还是用&&和||比较好。位运算时,只能用&、| &和|运算在将某位清零或者置1上超级好用的好么,谁用谁知道 既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。还真不一定,有一些特性的开关还是用位来控制的我写c/s改界面还是会有遇到过的 请问如果添加到TabItem的控件很多,如何让tabItem上出现滚动条呢? 高手进......急...求解决方案 字符串初始化时,s="" 好呢?还是 s=null 好呢?区别有多大? 怎么取listview 某列的值,只能根椐列的名称? XML怎样作超链参数 遇到一个关于字符串的问题 各位,这个问题很难吗? 怎样学习C#语言和ASP.NET C# 子线程访问主窗体控件 如何调用硬件做一些事情。!? 大神们,一个关于按钮键的问题,请指教! .net web网站缓存问题
var j = 1 | 0;//j=1,按位或
http://msdn.microsoft.com/zh-cn/library/sbf85k1c(VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/8xftzc7e.aspx
&&只用于布尔值,&可用于布尔值和位。
如果把二进制1看作真,0看作假,则&&与&的逻辑结果一致。
2.||是逻辑或,|是按位或。
||只用于布尔值,|可用于布尔值和位。
如果把二进制1看作真,0看作假,则||与|的逻辑结果一致。
但是逻辑或与位按或还是有区别:
计算 a||b时,若a为true,则不会再对b计算(调用函数或取值)
true ||b的写法编译器会直接给出警告:检测到无法访问的代码。
计算a|b时,即使a为true也会计算b。
private Boolean getTrue()
{
System.Diagnostics.Debug.Print("getTrue");
return true;
}
Boolean b = true | getTrue();
仍然会输出"getTrue"。
下面的代码作为参考:
System.Diagnostics.Debug.Print((0 & 0).ToString());
System.Diagnostics.Debug.Print((1 & 0).ToString());
System.Diagnostics.Debug.Print((0 & 1).ToString());
System.Diagnostics.Debug.Print((1 & 1).ToString());System.Diagnostics.Debug.Print((false & false).ToString());
System.Diagnostics.Debug.Print((true & false).ToString());
System.Diagnostics.Debug.Print((false & true).ToString());
System.Diagnostics.Debug.Print((true & true).ToString());System.Diagnostics.Debug.Print((false && false).ToString());
System.Diagnostics.Debug.Print((true && false).ToString());
System.Diagnostics.Debug.Print((false && true).ToString());
System.Diagnostics.Debug.Print((true && true).ToString());System.Diagnostics.Debug.Print((0 | 0).ToString());
System.Diagnostics.Debug.Print((1 | 0).ToString());
System.Diagnostics.Debug.Print((0 | 1).ToString());
System.Diagnostics.Debug.Print((1 | 1).ToString());System.Diagnostics.Debug.Print((false | false).ToString());
System.Diagnostics.Debug.Print((true | false).ToString());
System.Diagnostics.Debug.Print((false | true).ToString());
System.Diagnostics.Debug.Print((true | true).ToString());System.Diagnostics.Debug.Print((false || false).ToString());
System.Diagnostics.Debug.Print((true || false).ToString());
System.Diagnostics.Debug.Print((false || true).ToString());
System.Diagnostics.Debug.Print((true || true).ToString());
输出的结果是
0
0
0
1
False
False
False
True
False
False
False
True
0
1
1
1
False
True
True
True
False
True
True
True
&&、&、||、|都可以处理逻辑。而且||比|还优化了一些。
|与&除了可以处理逻辑(不建议)外,最主要的用途是处理二进制的位运算。
|相当于“置”或“打开”,&相当于“清零”或关闭。
例如,想用8位二进制数表示8个灯泡。0表示灭,1表示亮。
10010011表示亮灭灭亮灭灭亮亮。
那么,如果要关闭前三个灯,你只需要
10010011&00011111。结果是 00010011。
&可以这样理解:依照右边的数对左边的数操作:将0所表达的位清零(关闭),保留1所表达的位。
你也可以理解为每一位都把看成真0看成假,执行逻辑运算。
即相当于十进制的147&31=19。
如果我要开启前三个灯,只需要。
10010011|11100000。结果是11110011。、
|可以这样理解:依照右边的数对左边的数操作:将1所表达的位置1(打开),保留0所表达的位。
这相当于147|224=243。使用这种方式,可以用二进制数表示很多状态、报警。
<<是左移。>>是右移(有符号)。一些语言提供了无符号右移(>>>)。10000000>>3=00010000
十进制就是 128>>3=16。
00010000<<2=01000000
十进制16<<2=64。通常,为了方便,使用八位无符号的整数作为一个字节(Byte)进行这样的运算。
但是请注意:
Byte位移之后会变成int类型。
既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。
既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。
既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。
不仅是底层,只要你涉及到编程,你都会用到,如果你还没用到,说明你还没有入门!
既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。
这个符号不是底层的东西 是常识
既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。
不仅是底层,只要你涉及到编程,你都会用到,如果你还没用到,说明你还没有入门!大神说下 什么时候用到过 让小弟也学习下
1&1才为真,其他假 |或运算 两位不同为真,其他假
1|0 或0|1 才为真 ,其他假嘻嘻嘻
有一个 送分王子
& 与操作 1 & 0 = 0
| 或操作 1 |0 = 1
<<左移操作
>>右移操作估计lz不是计算机专业出生,或者就是上学时都不去上课的
1&0=0
0&0=01|0=1
1|1=1
0|0=0真假
你确定你找过?这是 google 的链接!
C# 逻辑运算
这是百度的:
C# 逻辑运算
嘴硬有啥用?这是每一本 C# 教科书中的基本教学点。
至于二进制编码,貌似用到的概率不高(于c#而言)。用到的时候再搜一下资料就会用了
从计算结果上看是一样.
但是
false && f()函数f不会被执行,因为后面是什么结果都是false
false & f()函数f会被执行,虽然最后结果也是false
同样的
true || f()函数f不会被执行
true | f()函数f会被执行
因此逻辑运算还是用&&和||比较好。
位运算时,只能用&、|
既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。
还真不一定,有一些特性的开关还是用位来控制的
我写c/s改界面还是会有遇到过的