A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liu0o0y 中级黑马   /  2014-4-30 12:17  /  1486 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 liu0o0y 于 2014-4-30 14:17 编辑

&、|能用在哪些数据类型中,
Console.WriteLine(true & false);
Console.WriteLine(true && false);
这两个返回的值为什么是一样的!

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

4 个回复

倒序浏览
第一个问题:
&为整型和bool类型预定义的。对于整型操作数,&计算操作数的按位“与”。对于bool操作数,& 计算操作数的逻辑“与“;也就是说,当且仅当两个操作数均为 true 时,其结果才为 true。
同样地, | 运算符是为整型 bool类型预定义的。对于整型操作数,| 计算操作数的按位“或”结果。对于bool操作数,| 计算操作数的逻辑“或”结果;也就是说,当且仅当两个操作数均为 false 时,结果才为 false。
第二个问题:
true & false  和  true && false 的结果都是false,这没什么值得怀疑了吧,因为两个都是逻辑”与“运算。
只不过对于a && b, 如果 a 为 false,则不计算 b而已,无论怎样都不会改变a && b = false 这个事实的。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
&和|是按位运算,在计算的时候,系统会把变量转换成对应的二进制码来计算,比如说十进制5对应的二进制就是0101,十进制3对应的二进制就是0011,他们之间进行按位与运算(&),结果就是 0001,对应的十进制就是1,按位与只有对应位都为1结果对应才为1,按位或运算(|)结果就是0111,对应的十进制就是7,按位或只要对应为其中有一个为1结果中对应位就为1。
至于&&和||这个是逻辑运算符,是和运算符两边的逻辑值来判断的,需要注意的是 &&逻辑与运算如果前面为false就不会执行后面的表达式,||逻辑或如果前面的表达式结果为true就不会执行后面的表达式

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
阿斌 发表于 2014-4-30 13:03
第一个问题:
&为整型和bool类型预定义的。对于整型操作数,&计算操作数的按位“与”。对于bool操作数,&  ...

了解了,感谢回复!
回复 使用道具 举报
&和|逻辑运算符想你的括号中写出的那样,整个表达式的结果就是一个bool类型的值,&&和&,|和||的区别就是&&对于两边的表达式都要执行,无论前边的表达式是否为true后面的表达式都要执行,而 &如果前面的表达式已经为true了满足条件了后面的表达式就不会执行了,同样的||和|也是同样的意思。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马