c语言中的非
❶ c语言中非一个常数等于多少,非0等于1吗非1=0吗
非0为1,非1为0,非任何非零值,均为0。
一、C语言中非操作为逻辑运算一种,符号为!。形式为
!expr
其中expr可以为表达式,变量或者常量。
二、对于逻辑操作而言,只有真和假两种结果,也就是1和0。
三、在逻辑运算中,所有参与运算的操作数,都会转为逻辑值,即真/假参与运算。对于常量,如果值为0则假,其它值均为真。
四、于是对于任意的常数N,如果N为0,那么!N值为1。如果N不为0,那么!N值为0。
❷ 在C语言中与或非的非符号怎么写
c语言运算符号指的是运算符号。C语言中的符号分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。
C提供了六种位运算运算符;这些运算符可能只允许整型操作数,即char、short、int和long,无论signed或者unsigned。
& 按位AND
| 按位OR
^ 按位异或
<< 左移
>> 右移
~ 求反(一元运算)
按位与操作&通常用于掩去某些位,比如
n = n & 0177;
使得n中除了低7位的各位为0。
按位或操作|用于打开某些位:
x = x | SET_ON;
使得x的某些SET_ON与相对的位变为1。
按位异或操作^使得当两个操作数的某位不一样时置该位为1,相同时置0。
应该区分位操作符&、|与逻辑操作符&&、||,后者从左到右的评价一个真值。比如,如果x为1、y为2,那么x & y为0,而x && y为1。
移位运算符<<和>>将左侧的操作数左移或者右移右操作数给定的数目,右操作数必须非负。因此x << 2将x的值向左移动两位,用0填充空位;这相当于乘4。右移一个无符号数会用0进行填充。右移一个带符号数在某些机器上会用符号位进行填充(“算数移位”)而在其他机器上会用0进行填充(“逻辑移位”)。
单目运算符~对一个整数求反;即将每一个1的位变为0,或者相反。比如
x = x & ~077
将x的后六位置0。注意x & ~077的值取决于字长,因此比如如果假设x是16位数那么就是x & 0177700。这种简易型式并不会造成额外开销,因为~077是一个常数表达式,可以在编译阶段被计算。
作为一个使用位操作的实例,考虑函数getbits(x,p,n)。它返回以p位置开始的n位x值。我们假设0位在最右边,n和p是正数。例如,getbits(x,4,3)返回右面的4、3、2位。
/* getbits: 返回从位置p开始的n位 */
unsigned getbits(unsigned x, int p, int n)
{
return (x >> (p+1-n)) & ~(~0 << n);
}
表达式x >> (p+1-n)将需要的域移动到字的右侧。~0是全1;将其左移n为并在最右侧填入0;用~使得最右侧n个1成为掩码。
❸ c语言里的逻辑“非”应该怎么理解
逻辑“非”运算符 (!)
对一个表达式执行逻辑非。
result = !expression
参数
result
任何变量。
expression
任何表达式。
说明
如果 expression 是 True 则 result 是 False
如果 expression 是 False则 result 是 True
如果 expression 是非零的,则 result 是零。如果 expression 是零,则 result 是 1。
❹ C语言逻辑或与非的用法
C语言逻辑或与非用于逻辑运算,可以在一条语句中同时出现,但还有优先级的限制。
基本应用:
逻辑与,符号为“&&”,只有两个操作数都是真,结果才是真。逻辑或,是逻辑运算符,符号是“||”。表示当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”。“!”(逻辑非)逻辑运算符。“逻辑非”就是指本来值的反值。
优先级:
C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。逻辑与运算符 13级“&&”逻辑与运算符。逻辑或运算符 14 级,“ || ”逻辑或运算符。逻辑否“!”单目/一元运算 3级。因此优先级为:逻辑非高于逻辑与高于逻辑非。
运算方向:
在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如 a = 0 && b; &&运算符的左边位0,则右边表达式b就不再判断。
(4)c语言中的非扩展阅读:
相关规则及应用:
1、逻辑运算符:a=1,b=1;a||b-1;因为a=1为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。
2、短路原则:
在逻辑表达式的求解过程中,任何时候只要逻辑表达式的值已经可以确定,则求解过程不再进行,求解结束。表达式中优先级最低的逻辑运算符,以这些运算符为准将整个逻辑表达式分为几个计算部分。最左边一个计算部分开始,按照算术运算、关系运算和逻辑运算的规则计算该部分的值。
每计算完一个部分就与该部分右边紧靠着的逻辑运算符根据真值表进行逻辑值判断。如果已经能够判断出整个逻辑表达式的值则停止其后的所有计算;只有当整个逻辑表达式的值还不能确定的情况下才进行下一个计算部分的计算。
❺ C语言中的 与或非运算
C语言中的与、或、非是C语言的逻辑运算符。
1、逻辑与
在C语言中逻辑与用&&表示。
举例:a&&b(其中a、b都代表一个条件)
如果a和b都为真,则结果为真,如果a和b中有一个条件为假,则结果为假。
2、逻辑或
在C语言中逻辑或用||表示。
举例:a||b(其中a、b都代表一个条件)
如果a和b有一个或以上为真,则结果为真,二者都为假时,结果为假。
3、逻辑非
在C语言中逻辑非用!表示。
举例:!a(a代表一个条件)
如果a为假,则!a为真,如果a为真,则!a为假。
(5)c语言中的非扩展阅读
在C 语言中的逻辑运算符及优先级:
一元:!(逻辑非)。
二元:&&(逻辑与)、||(逻辑或)。
以上三种逻辑运算符中,逻辑非 ! 的优先级最高,逻辑与 && 次之,逻辑或 || 优先级最低。即算术、逻辑、赋值运算符的优先级顺序为:
逻辑非 ! >算术 > 逻辑与 &&、逻辑或 || > 赋值=