C语言逻辑运算符

C语言逻辑运算符,第1张

1 形式:

&&的形式为a&&b。

||的形式为a||b。

2 计算规则:

&&只有当a和b的值均非0时,结果为1,否则结果为0。

||只有当a和b的值均为0时,结果为0,否则结果为1。

3 优先级:

&&的优先级比||高,所以在写在一起时,先计算&& 再计算||。

相同符号时,自左向右计算。

4 短路原则:

对于&&,如果左 *** 作数a为0,那么结果必然为0, 右 *** 作数b将不参与计算。

对于||,如果左 *** 作数a非0,那么结果必然为1, 右 *** 作数b将不参与计算。

1、“逻辑与”运算符,符号:And,用法:a and b,释义:如果a与b都为TRUE,则结果为TRUE,否则为FALSE。

2、“逻辑与”运算符,符号:&&,用法:a && b,释义:如果a与b都为TRUE,则结果为TRUE,否则为FALSE。

3、“逻辑或”运算符,符号:|| ,用法:a || b,释义:如果a或b任一为TRUE,则结果为TRUE,否则为FALSE。

4、“逻辑异或”运算符,符号:Xor,用法:a xor b,释义:如果a或b同位相异,则结果为TRUE,否则为FALSE。

5、“逻辑非”运算符,符号:Not,用法:not a ,释义:如果a不为 TRUE,则结果为TRUE,否则为FALSE。

6、“逻辑非”运算符,符号:!,用法:!a,释义:如果a不为 TRUE,则结果为TRUE,否则为FALSE。

扩展资料:

在形式逻辑中,逻辑运算符或逻辑联结词把语句连接成更复杂的复杂语句。例如,假设有两个逻辑命题,分别是“正在下雨”和“我在屋里”,我们可以将它们组成复杂命题“正在下雨,并且我在屋里”或“没有正在下雨”或“如果正在下雨,那么我在屋里”。

逻辑运算符的优先级为:NOT/!>AND/&&>OR/||>Xor,同级运算从左到右。

C语言逻辑或与非用于逻辑运算,可以在一条语句中同时出现,但还有优先级的限制。

基本应用:

逻辑与,符号为“&&”,只有两个 *** 作数都是真,结果才是真。逻辑或,是逻辑运算符,符号是“||”。表示当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”。“!”(逻辑非)逻辑运算符。“逻辑非”就是指本来值的反值。

优先级:

C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。逻辑与运算符 13级“&&”逻辑与运算符。逻辑或运算符 14 级,“ || ”逻辑或运算符。逻辑否“!”单目/一元运算 3级。因此优先级为:逻辑非高于逻辑与高于逻辑非。

运算方向:

在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如 a = 0 && b; &&运算符的左边位0,则右边表达式b就不再判断。

扩展资料:

相关规则及应用:

1、逻辑运算符:a=1,b=1;a||b-1;因为a=1为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。

2、短路原则:

在逻辑表达式的求解过程中,任何时候只要逻辑表达式的值已经可以确定,则求解过程不再进行,求解结束。表达式中优先级最低的逻辑运算符,以这些运算符为准将整个逻辑表达式分为几个计算部分。最左边一个计算部分开始,按照算术运算、关系运算和逻辑运算的规则计算该部分的值。

每计算完一个部分就与该部分右边紧靠着的逻辑运算符根据真值表进行逻辑值判断。如果已经能够判断出整个逻辑表达式的值则停止其后的所有计算;只有当整个逻辑表达式的值还不能确定的情况下才进行下一个计算部分的计算。

参考资料来源:百度百科-逻辑与

参考资料来源:百度百科-逻辑或

参考资料来源:百度百科-逻辑非

参考资料来源:百度百科-C语言运算符

C语言逻辑运算符分别是:或(||)、且(&&)、非(!),分别对应于命题逻辑中的 OR、AND、NOT运算。

逻辑运算符:或 ||。在命题逻辑中,当P=1或Q=1时,P||Q等于1。

逻辑运算符:且 &&。在命题逻辑中,当P=1且Q=1时,P&&Q才等于1。

逻辑运算符:非 !。在命题逻辑中,当P等于0时,!P等于1,反之亦然。

C语言的运算符号

比较特别的是,比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补0)位移。例如,将11100011右移3比特,算术右移后成为11111100,逻辑右移则为00011100。因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移。

运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。

以上内容参考  百度百科-C语言

凡是C语言中的运算符大都有与之对应的 *** 作数,而且 *** 作数的数据类型往往都有一定的限制。C语言的逻辑运算符比较特别,它的 *** 作数没有明确的数据类型,它们统称逻辑值,但是这个逻辑值却没有与之对应的数据类型,比如C++里面的bool已经Windows里面的BOOL,很遗憾C没有自己的逻辑类型。

C规定,所有带有整形性质的数据类型都可以作为逻辑运算符的 *** 作数,包括所有整形(有符号/无符号int、long),字符型(有符号/无符号char),以及所有指针。这些数据类型定义的变量,都与一个整数对应,只要这个整数不是0,C就把它当作逻辑值的‘真’,只有当变量值为0时,变量对应的逻辑值才为‘假’。

编译器是如何使用这种‘真’‘假’值呢?一般在选择判断语句,即if语句。只要if()括号里的值非零,编译器就认为条件满足(假设成立),从而执行后面的语句组。

准备好了吗 现在可以开始谈运算符了。运算符就是对以上介绍的一个或多个逻辑值(可以用1统一代表非零作为真值,用0代表假值)进行运算的符号,其中有“&&”、“||”、“!”三个。第一个,对两个逻辑值做“与运算”,只有当两个逻辑值都为真时结果才是真,可以理解成逻辑值相乘;第二个,对两个逻辑值做“或运算”,只要两个逻辑值其中一个为真结果就为真,可以理解成逻辑值相加;第三个,求反,顾名思义, *** 作数逻辑值为真,求反运算结果则为假,反之亦然。

说了不少,不知够不够清楚,举几个例子吧。

// Example 1:

int intValue;

long longValue;

char charValue;

long pLong;

intValue = -100;

longValue = 0;

charValue = 'A';

pLong = &longValue;

// 与 “&&”

if( (intValue<charValue) && longValue)

{

printf("&&与运算结果为真");

}

{

printf("&&与运算果为假"); //执行, 因为右 *** 作数值为0,逻辑值为假。 再经求与,结果为假!

}

// 或 “||”

if( (intValue<charValue) || longValue)

{

printf("||或运算结果为真");//执行,因为左 *** 作数()逻辑值值为1,逻辑值为真。 再经求或,结果为真!

}

{

printf("||或运结果为假");

}

// 求反 “!”

if(!pLong)

{

printf("!求反运算结果为真");

}

{

printf("!求反运算结果为假"); //执行,因为唯一的右 *** 作是地址肯定不为0。逻辑值为真。 再经求反,结果为假!

}

花了30多分钟回答你的问题,哈哈!成copy的啦!随便你怎么想,你要是觉得我写的东西对你没帮助的话,我没有什么好说的

在C语言中,逻辑与运算的运算符为“&”和“&&”,是双目运算符,其中“&&”为短路与,以下为详细用法:

用法1:表达式1&表达式2

用法2:表达式1&&表达式2

当表达式1与表达式2的值皆为非0(真)时,则整个表达式的值为非0(真),否则,整个表达式的值为0(假)。

其中,用法1中用的是“&”,当运算表达式时,“&”两边的表达式都要进行运算,也就是说,无论表达式1的值为真还是假,都要运算表达式2;用法2中用的是“&&”,前面说了这是短路与,所以,当表达式1为假时,则整个表达式为假,且不再运行表达式2。

以上就是关于C语言逻辑运算符全部的内容,包括:C语言逻辑运算符、请问,VB中的逻辑运算符都是什么意思、C语言逻辑或与非的用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9658066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存