C语言中的按位运算符和逻辑运算符?

C语言中的按位运算符和逻辑运算符的区别?书上有个例子:x=7,x&&8的值为真,x&8的值为假。怎模理解呢?... C语言中的按位运算符和逻辑运算符的区别?书上有个例子:x=7,x&&8的值为真,x&8的值为假。怎模理解呢? 展开
 我来答
qiaochengqiang
2007-12-24 · TA获得超过111个赞
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
&&是逻辑与,计算机的逻辑无非两种,0和非0,7和8都是非0,那么7&&8就是非0,也就是真了。
&是位操作,即按两个操作数的二进制每一位进行与运算
7的二进制:00000111
8的二进制:00001000
与运算后为:00000000,结果就是假了
月影低徊
2007-12-24 · TA获得超过1301个赞
知道小有建树答主
回答量:795
采纳率:0%
帮助的人:899万
展开全部
二者是不同的概念。
逻辑运算是针对真(1)和假(0)两个逻辑值来进行的操作。具体到数字时,0对应假。非零对应真。故而7&&8结果是真。
位运算是整数特有的造作,是对操作数的二进制编码的每一位进行运算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Eros方块
2007-12-24 · TA获得超过138个赞
知道小有建树答主
回答量:653
采纳率:0%
帮助的人:0
展开全部
7: 00000111
8: 00001000
按位与就是每位相与,答案是
7&8:00000000
当然是假
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙支夸依
2007-12-24 · TA获得超过1281个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:326万
展开全部
预备知识:
逻辑值即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了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式