C语言为什么语句while(!x)和while(~x) 不等价?

日期:2016-08-30 13:26:25 人气:1

C语言为什么语句while(!x)和while(~x) 不等价?

!x和~x的计算规则不同,所以二者不能等价。 用于while()条件时,当表达式结果为0,while退出,否则while继续循环。 对于!x,只有当x为0时,表达式结果为真,while会继续循环;对于其它的值,!x的结果都是0,会退出循环。 于是!x的真值就是 x = 0, !x=1 x!=0, !x=0 而对于~x,是按位取反。 所以,只有当x的每位均为1时,结果为0。其它x值的运算结果均非0. 于是~x的真值为 x的每位全为1, ~x为0. x的任意一位不为1,~x为非
    A+
热门评论