C语言中的按位运算符和逻辑运算符?
C语言中的按位运算符和逻辑运算符的区别?书上有个例子:x=7,x&&8的值为真,x&8的值为假。怎模理解呢?...
C语言中的按位运算符和逻辑运算符的区别?书上有个例子:x=7,x&&8的值为真,x&8的值为假。怎模理解呢?
展开
4个回答
展开全部
二者是不同的概念。
逻辑运算是针对真(1)和假(0)两个逻辑值来进行的操作。具体到数字时,0对应假。非零对应真。故而7&&8结果是真。
位运算是整数特有的造作,是对操作数的二进制编码的每一位进行运算
逻辑运算是针对真(1)和假(0)两个逻辑值来进行的操作。具体到数字时,0对应假。非零对应真。故而7&&8结果是真。
位运算是整数特有的造作,是对操作数的二进制编码的每一位进行运算
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
7: 00000111
8: 00001000
按位与就是每位相与,答案是
7&8:00000000
当然是假
8: 00001000
按位与就是每位相与,答案是
7&8:00000000
当然是假
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
预备知识:
逻辑值即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了
逻辑值即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了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询