&&和&的区别

在学习编程中,&和&& 被解释为:&&是逻辑操作符,而&是位操作符,但是它们的具体使用上的区别是什么呢?

1、当&&和&作为逻辑操作符时,看看它们都有什么作用。请看下面例子:

1  int i = 8;
2  int j = 8;
3  int k = 8;
4  int h = 8;
5  bool a = (i > 5) && ((i = i + 5) > 10); //................(1)
6  bool b = (j > 5) & ((j = j + 5) > 10);  //................(2)
7  bool c = (k > 15) && ((k = k + 5) > 10);//................(3)
8  bool d = (h > 15) & ((h = h + 5) > 10); //................(4)

在这里插入图片描述

请看上图输出结果:

对于(1)来说,i > 5 为True,(i = i + 5) > 10为True,那么a就为True,即,两者都为True则a为True。此时i=13。

对于(2)来说,j > 5为True,(j = j + 5) > 10为True,那么b就为True,即,两者都为True则a为True。此时j=13。

对于(3)来说,k > 15为False,(k = k + 5) > 10为True,那么c就为False,即,一True一False则c为False。此时k=8。

对于(4)来说,h > 15为False,(h = h + 5) > 10为True,那么d就为False,即,一True一False则d为False。此时h=13。

由此可以总结一句话:

&&:逻辑与,两True才为True,一False即为False。即:两真才为真,一假即为假。

& :逻辑与,两True才为True,一False即为False。即:两真才为真,一假即为假。

区别:

表达式(1) && 表达式(2),只有表达式(1)为True时,表达式(2)才会执行。

表达式(1) & 表达式(2),无论表达式(1)为True或False,表达式(2)都会执行。

2、当&作为位操作符时,看看它有什么作用。请看下面例子:

1  int i = 6; //6的二进制为0110
2 
3  i = i & 5; //5的二进制为0101

在这里插入图片描述

请看上图输出结果:

当&为位操作符时,6和5进行了位运算,而6的二进制为0110,5的二进制为0101,逻辑&后,此时i的值的二进制为0100,对应的十进制为4。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值