采用位运算,如果想将整数的二进制某一位翻转可采用id^=(1<<x)(x代表要翻转的位置)

id &= ~(1<<x) :右起第x位置置为0。  //多加一个翻转

id |= (1<<x) :右起第x位置置为1。

id ^=(1<<x) :右起第x位置置翻转,1翻转为0,或0翻转为1

----------------------------------------------------------------------------------------

0&0 = 0&1 =0  ;1&0 =0 , 1&1 =1

可以得出:0与0或1相与都为0,而1与0或1相与原来数字都不变。

简记:0置0,1不变

作用:用来置0

使用:id &= ~(1<<x) :右起第x位置置为0。  

----------------------------------------------------------------------------------------

1|0 =1, 1|1 =1 ;0|0 =0, 0|1 =1  

可以得出:1与0或1相与都为1,而0与0或1相与原来数字都不变

简记:1置1,0不变

作用:用来置1

使用:id |= (1<<x) :右起第x位置置为1。

----------------------------------------------------------------------------------------

 1^0 =1  , 1^1 =1 ; 0^0 =0,0^1=1

可以得出:1与0或1异或都能使其取反(翻转)得到1或0,而0与0或1相与原来数字都不变

简记:1翻转,0不变

作用:用来翻转某位

使用:id ^=(1<<x) :右起第x位置置翻转



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值