逻辑与和按位与、逻辑或和按位或的区别

首先分别明确一下他们各自的概念。

按位与和按位或

按位与和按位或都属于位操作符。

注意:位操作符的操作数必须是整数。

按位与“&”

按二进制位对应的位进行与运算,对应位都为1时,结果才为1

3&5
3的二进制:   00000000000000000000000011 //32位系统中
5的二进制:   00000000000000000000000101 //32位系统中
按位与的结果:00000000000000000000000001

代码验证

int main()
{
      int a = 3;
      int b = 5;
      int c = a&b;     
      
      printf("%d\n", c);
      return 0;
}

运行结果
在这里插入图片描述

按位或“|”

按二进制位对应的位进行或运算,对应位只要一个为1,结果就为1。

3|5
3的二进制:   00000000000000000000000011 //32位系统中
5的二进制:   00000000000000000000000101 //32位系统中
按位与的结果:00000000000000000000000111 

代码验证

int main()
{
    int a = 3;
    int b = 5;
    int c = a | b;

    printf("%d\n", c);
    return 0;
}

运行结果
在这里插入图片描述

逻辑与和逻辑或

逻辑与和逻辑或都是逻辑操作符。逻辑与和逻辑或关注的是操作符两边的表达式本身是真还是假。

C语言用整数表示逻辑真,用表示逻辑假。但在判断一个数据的时,却以非0为根据:如果为0,则判定为逻辑假;如果为非0,则判定为逻辑真

逻辑与“&&”

“&&”运算符两边的式子只有都是真,整个逻辑表达式的值才是真(即为1),否则整个逻辑表达式的值就是假(即为0)。

代码验证

int main()
{
	int a = 3;
	int b = 5;
	int c = a && b;
	printf("%d\n",c);
	return 0;
}

运行结果
在这里插入图片描述

逻辑或“||”

“||”运算符两边的式子只要一个式子为真,整个逻辑表达式的值就是真(即为1),否则整个逻辑表达式的值就是假(即为0)。

代码验证

//一真一假
int main()
{
	int a = 0;
	int b = 5;
	int c = a || b;
	printf("%d\n",c);
	return 0;
}

运行结果
在这里插入图片描述

//两个同时为假
int main()
{
	int a = 0;
	int b = 0;
	int c = a || b;
	printf("%d\n",c);
	return 0;
}

运行结果
在这里插入图片描述
题目:程序输出的结果是什么?

int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ && ++b && d++;
  
	printf(" a=%d\n b=%d\n c=%d\n d=%d\n",a ,b ,c ,d);

	return 0;
}

运行结果
在这里插入图片描述
这里程序为什么输出的是这样一个结果呢?

逻辑与运算中操作符“&&”左边的式子只要为假(0)就不进行运算了。i = a++ && ++b && d++中。最左边的“a++”先参与运算后加加,a=0先参与逻辑或运算,因为操作符“&&”左边为0所以右边就停止计算。

逻辑与和按位与,逻辑或和按位或的区别

按位与和按位或是用二进制对应的位进行与和或运算,而逻辑与和逻辑或关注的是操作符两边的表达式本身是真还是假。

1&2----->0
1&&2---->1

1|2----->3
1||2---->1
  • 23
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值