C++:C++位操作符常用基本手法及应用

基本:
1, & 与位运算符 两者同是为1才为1,否则为0
2, |  或位运算符 两者有一个1(至少一个为1)就为1,否则为0
3,  ^  亦或运算符 两者有一个1(必须一个为1,一个为0)就为1,否则为0
4, ~ 求反运算符,为二进制求反,在二进制的基础上,每一位上为1的变成0,每一位上为0的变成1
以上都是以二进制基础运算的
5, ! 非
 

运用:
1,变量 value 打开 某个位 n
value = value | (1 << n)
可简化:
value |= (1 << n)
2,变量 value 关闭 某个位 n
value = value & ~(1 << n)
可简化:
value &= ~(1 << n)
3,变量 value 切换 某个位 n
value = value ^ (1 << n)
可简化:
value ^= (1 << n)
4, 测试 变量 value 中的某位 n 是否为 1
if ((value & (1 << n)) == (1 << n))
{
}
可简化为:

if (value & (1 << n))
{<span style="font-family: Arial, Helvetica, sans-serif; line-height: 19.2000007629395px;">   </span>
}
这种手法应用比较广泛,如
如储存状态,例:一个月中每一天对应的状态,可以申明一个unsigned int 变量(这里指32位),
修改储存状态用上述手法即可!
运算符的替代表示:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值