C语言--位操作符

三种位操作符

& //按位与(两个均为1则为1,否则为0)
| //按位或(有一个为1则为1,两个均为0,则为0)
^ //按位异或(相同为0,不同为1)

在这里有两个初学比较容易错的点是:
1.他们三个操作符只适用于整数。
2. & | 要与逻辑 && || 进行严格区分。

这三种操作符在解决一些问题时,能够得到巧妙的应用。

应用范例

例1:不能创建临时变量(第三个变量),实现两个数的交换。
这个问题在这里有两种解决方法:
1.交换两个数 方法1
2.采用异或的方法,理解起来较为抽象
例2:编写代码实现:求一个整数存储在内存中的二进制中1的个数。
方法1.我们已经知道,当一个整数每除以2时,它的二进制位会右移1位,而且当最低位为1时,则余数为1,最低位为0时,则余数为0,所以,我们可以设置一个计数器,通过不断右移的操作来对计数。
使用 /2的方式进行右移
当然我们可以直接使用右移然后与1进行&的操作对末尾的1进行计数。
利用&来计数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值