C语言中,&和&&有什么区别,|和||有什么区别

当x=0,y=-1,z=1时x&&yx||yy&&zy||zx&yx|y分析以上表达式的值... 当x=0,y=-1,z=1时
x&&y
x||y
y&&z
y||z
x&y
x|y
分析以上表达式的值
展开
 我来答
my缪宇
2018-03-31 · TA获得超过8144个赞
知道小有建树答主
回答量:92
采纳率:70%
帮助的人:17.6万
展开全部

&:是与的意思
&&:是且的意思
|:是或的意思
||:也叫或

&: 两个数字位操作 AND。或者取某个变量的地址,或声明引用。
对 bit:(0 & x ) = 0; ( 1 & x ) = x;
&&:两个 bool 值的“并且”。( false && x ) = false; (true && x)= x;

|:两个数字 位操作 OR。对 bit: ( 0 | x ) = x; ( 1 | x ) = 1;
||:两个bool 值的“或”。( true || x ) = true; ( false || x ) = x;

逻辑运算与按位运算,不一样的两种运算。
按位运算是把整数的每个二进制位与另一个整数对应的每个二进制位进行运算,是整数到整数的运算。逻辑运算其实是布尔值到布尔值的运算,只不过在C当中,所有非零整数都理解true,所有0都理解为false。所以4 && 2 == 1,其实是4是true,2也是true,与的结果是true,所以是1。而按位操作,4是0b0100, 2是0b0010,它们没有重叠的二进制位,所以结果是4 & 2 == 0



他De生活
高粉答主

2018-11-17 · 关注我不会让你失望
知道答主
回答量:109
采纳率:0%
帮助的人:3.3万
展开全部

区别:

1.运算符性质不同。

&是一个位运算符。

&&是一个逻辑运算符

2.作用不同。

&是将两个二进制的数逐位相与,结果是相与之后的结果。

&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。

3.用途限制。

&除了是一个位运算符,也是取地址符。

&&就是一个单纯的逻辑运算符,没有任何其他含义。

参考资料

&-百度百科

&&-百度百科

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天雨下凡
推荐于2017-11-23 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
采纳数:17564 获赞数:65156
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……

向TA提问 私信TA
展开全部
&和|是针对位的操作,&&与||是逻辑操作符
设有变量x和y,则x&y,是先把x与y转换成二进制,再对每一位进行&运算,都为1,则结果为1,否则为0,x|y也是先把x与y转换成二进制,再对每一位进行|运算,只要有一个为1,则结果为1,二个都为0,结果才为0
x&&y,如果x与y都为真(非0),则结果为1,否则为0,x||y,只要x与y中有一个为真(非0),则结果为1,只有两都同时为0,结果才为0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赢皮大8
2016-10-24 · TA获得超过889个赞
知道小有建树答主
回答量:991
采纳率:75%
帮助的人:514万
展开全部
&& 是条件判断,返回结果只有1或0(即真或假)
& 是与运算符,就像+-×÷一样可以返回任意位数的结果
假设x,y,z都是8位数

x&&y=0;
x||y=1;
y&&z=1;
y||z=1;
x&y=0000 0000&1111 1110=0;
x|y=0000 0000|1111 1110=1111 1110;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
恋_心坊
2019-03-11 · 超过24用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:11.5万
展开全部
&是位运算的与,每一位都要进行,&&是表达式的与,操作整个逻辑式,|(或)同理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式