黑马程序员技术交流社区

标题: C#运算符关于&和&&,|和|| [打印本页]

作者: liu0o0y    时间: 2014-4-30 12:17
标题: C#运算符关于&和&&,|和||
本帖最后由 liu0o0y 于 2014-4-30 14:17 编辑

&、|能用在哪些数据类型中,
Console.WriteLine(true & false);
Console.WriteLine(true && false);
这两个返回的值为什么是一样的!
作者: 阿斌    时间: 2014-4-30 13:03
第一个问题:
&为整型和bool类型预定义的。对于整型操作数,&计算操作数的按位“与”。对于bool操作数,& 计算操作数的逻辑“与“;也就是说,当且仅当两个操作数均为 true 时,其结果才为 true。
同样地, | 运算符是为整型 bool类型预定义的。对于整型操作数,| 计算操作数的按位“或”结果。对于bool操作数,| 计算操作数的逻辑“或”结果;也就是说,当且仅当两个操作数均为 false 时,结果才为 false。
第二个问题:
true & false  和  true && false 的结果都是false,这没什么值得怀疑了吧,因为两个都是逻辑”与“运算。
只不过对于a && b, 如果 a 为 false,则不计算 b而已,无论怎样都不会改变a && b = false 这个事实的。
作者: continue     时间: 2014-4-30 14:07
&和|是按位运算,在计算的时候,系统会把变量转换成对应的二进制码来计算,比如说十进制5对应的二进制就是0101,十进制3对应的二进制就是0011,他们之间进行按位与运算(&),结果就是 0001,对应的十进制就是1,按位与只有对应位都为1结果对应才为1,按位或运算(|)结果就是0111,对应的十进制就是7,按位或只要对应为其中有一个为1结果中对应位就为1。
至于&&和||这个是逻辑运算符,是和运算符两边的逻辑值来判断的,需要注意的是 &&逻辑与运算如果前面为false就不会执行后面的表达式,||逻辑或如果前面的表达式结果为true就不会执行后面的表达式
作者: liu0o0y    时间: 2014-4-30 14:16
阿斌 发表于 2014-4-30 13:03
第一个问题:
&为整型和bool类型预定义的。对于整型操作数,&计算操作数的按位“与”。对于bool操作数,&  ...

了解了,感谢回复!
作者: 8点的太阳    时间: 2014-4-30 14:24
&和|逻辑运算符想你的括号中写出的那样,整个表达式的结果就是一个bool类型的值,&&和&,|和||的区别就是&&对于两边的表达式都要执行,无论前边的表达式是否为true后面的表达式都要执行,而 &如果前面的表达式已经为true了满足条件了后面的表达式就不会执行了,同样的||和|也是同样的意思。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2