第3个回答 2007-12-24
预备知识:
逻辑值即bool值,要么是true,要么是false.
算数值,也就是我们通过加、减、乘、除、异或、同或等运算后得到的数值。
当然,在一定的场合中,逻辑值和算数值是可以转换的。
C语言归定:
逻辑值转算数值:true等价于1,false等价于0
例:
void main()
{
bool b=true;
bool c=false;
printf("%d %d",b,c);
}
输出:1 0
算数值转逻辑值时:
0等价于false,非0等价于true.
注意:非0等价于true.也就是说负数也等价于true的。
---------------
要我们来看书上的这个例子.
int x=7;
if (x&&8)
{...}
由此可知,7>0即为true,8>0也为true。那么,true&&true当然也是true了。
-------------
int x=7; //7的二进制写法是 0111b
if (x&8)//8的二进制写法是 1000b
{...}
那么,当111b和1000b取与操作的时候,当然是0了。那么,在逻辑表里就是false了