C语言按位运算符& |和逻辑运算符&& ||的区别

一、按位与运算符 &

    "&"是按位操作符,用于对整数的二进制位进行逐位运算。"&"按位与操作符执行两个操作数的按位与运算,只有在相应位置的两个操作数都是1时,结果位才是1,否则为0。(计算机处理的所有数据最终都会被表示为二进制位,所以每当我们看见这种运算符时,要将其转化为二进制数)

int result = 5 & 3; // 0101 & 0011 = 0001,结果为1
// 0 1 0 1    5
// 0 0 1 1    3
//---------
// 0 0 0 1    1

   规则:全1为1,否则为0。

 二、按位或运算符 |

  "|"是按位操作符,用于对整数的二进制位进行逐位运算。按位或操作符执行两个操作数的按位或运算,只要在相应位置的两个操作数中至少有一个是1,结果位就是1,否则为0。

int result2 = 5 | 3; // 0101 | 0011 = 0111,结果为7
// 0 1 0 1    5
// 0 0 1 1    3
//---------
// 0 1 1 1    7

 规则:全0为0,否则为1。

三、逻辑运算符 &&

  "&&"是逻辑操作符,用于对逻辑表达式进行求值。"&&"逻辑与操作符执行逻辑与运算,只有在两个操作数都为真(非零)时,结果为真,否则为假(0)。

int a = 5, b = 3;
int result = (a > 0) && (b > 0); // (true) && (true) = true,结果为1
// 0 1 0 1    5
// 0 0 1 1    3
//---------
// 0 0 0 1    1

规则:全1为1,否则为0。

四、逻辑运算符 ||

  "||"用于对逻辑表达式进行求值,结果为逻辑值(01)。用于对两个逻辑表达式进行逻辑或运算,只要两个操作数中至少有一个为真(非零),结果为真,否则为假。

int result2 = (a > 0) || (b < 0); // (true) || (false) = true,结果为1
// 0 1 0 1    5
// 0 0 1 1    3
//---------
// 0 1 1 1    7

规则:有1为1,否则为0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值