关于逻辑量的真假判断

来源:百度知道 编辑:UC知道 时间:2024/06/16 18:41:00
2.逻辑量的真假判定——0和非0
C语言用整数“1”表示“逻辑真”、用“0”表示“逻辑假”。但在判断一个数据的“真”或“假”时,却以0和非0为根据:如果为0,则判定为“逻辑假”;如果为非0,则判定为“逻辑真”。
例如,假设num=12,则: !num的值=0 ,num>=1 && num<=31的值=1 ,num || num>31的值=1。
举得例子不是很明白,请帮忙解释一下~~谢谢
可以用汉字说一下这几个例子的意思吗?谢谢~~

头文件 #include <windows.h>
printf("%d\n",TRUE);
printf("%d\n",FALSE);
printf("%d\n",! TRUE);
printf("%d\n",! FALSE);
你可以看出 真 1,假 0
printf("%d\n",! 12); // 你可以看出 “非12” 为 0 ,就是假

实际上,除了 0,其它值 都是真。12是真, 非12 是假。
你不要想到数学值 0,1
要想到 逻辑值 TRUE(真),FALSE(假)
num=12
num >= 1 对,逻辑值 TRUE(真)
num<=31 对,逻辑值 TRUE (真)
TRUE && TRUE, 真 与 真 得 真。

num=12
!num=0 因为num是12,12大于0,所以,num是非零,也就是1. !(感叹号)在C语言中,表示按意取反,!num(非num)就是num的反值,也就是0.
num>=1&&num<=31 因为num是12,12肯定大于1,所以,num>=1是正确的,也就是非零,是1. num<=31,12小于等于31也是正确的,也是非零,是1.
而&&(逻辑与) 1与1,还是1.
num||num>31 num本身是12,非零,为1,上面已经说过了。 num>31明显是错误的。12怎么会大于31.所以,这个值是假的,也就是0。 但是在||(逻辑或)运算中,有一个值为真,那这个表达式就为真。因为 num这个值为1,即使后面的num>31为假,但是,这个值还是1.

num初值为12,即非零,!的意思是,单目逻辑非,就是取反的意思,&&是逻辑与,就是都的意思,最后一个是逻辑或...