谁能帮我解答这个问题?在c语言里的(!)逻辑非,我一直都搞不懂,取反运算。谁能解释下,有代码更好。

如题所述

二进制取反~是将整数的二进制每位改成相反的。比如1011变成0100.
逻辑非!可以借助二进制取反~实现。
逻辑变量(取值0和1)可以看做只有一个bit的二进制变量,当对这个二进制取反的时候,就达到了非的效果。
~0=1;~1=0.
二进制取反对不同类型的整数是不同的,如果整数是逻辑变量型,效果如上。
如果整数是字节,则~0=255,~255=0,~1=254,
如果整数是short,则~0=65535,~65535=0,~1=65534,
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-24
逻辑非是C语言中逻辑运算中的一种,其运算符号为英文半角叹号,即'!'。
!运算为单目运算,即只有一个操作数,与其后面的常量或变量相结合进行运算。
C语言中的逻辑运算结果均只有真和假两种,其真值为1和0。
对于运算
!a
其运算规则为,
1 如果a的值为0,则运算结果为1;
2 如果a的值非0,则运算结果为0。
不懂随时问,在线等本回答被网友采纳
第2个回答  2013-03-30
(!)这和取反运算有什么关系??取反是(~)
当逻辑关系不成立时,加上!代表成立,反之一样
int a=1,b =2;
if(a != b)该条件 成立

取反(~)
#define B1111_0000 0xf0
#define B0000_1111 0x0f
char a = ~B1111_0000
此时a的值就应该和B0000_1111相等
第3个回答  2013-03-30
!代表“相反的”的意思。例如,c语言中等于是“==”不等于就是“!=”
还有,在c语言中,非零就是真,零就是假。如!5表示假,!0表示真
第4个回答  2018-01-24
!=
!equalse()
我可以这样理解么,不等于,
相似回答