位运算功能大全

去掉最后一位
示例:10110110110(101101⇒10110)
位运算:x>>1x>>1

在最后加一个0
示例:(1011011011010)(101101⇒1011010)
位运算:x<<1x<<1

在最后加一个1
示例:(1011011011011)(101101⇒1011011)
位运算:(x<<1)+1(x<<1)+1

把最后一位变成1
示例:(101100101101)(101100⇒101101)
位运算:x|1x|1

把最后一位变成0
示例:101101101100101101⇒101100
位运算:(x|1)1(x|1)−1

最后一位取反
示例:(101101101100)(101101⇒101100)
位运算:xxor1xxor1

把右数第k位变成1
示例:(101001101101,k=3)(101001⇒101101,k=3)
位运算:x|(1<<(k1))x|(1<<(k−1))

把右数第k位变成0
示例:(101101101001,k=3)(101101⇒101001,k=3)
位运算:x and  (1<<(k1))x and  (1<<(k−1))

右数第k位取反
示例:(101001101101,k=3)(101001⇒101101,k=3)
位运算:x(xor(1<<(k1)))x(xor(1<<(k−1)))

取整数n在二进制表示下的第k位
位运算:(n>>k) and 1(n>>k) and 1

取整数n在二进制表示下的后k位
位运算:n and ((1<<k)1)n and ((1<<k)−1)

取末k位
示例:(11011011101,k=4)(1101101⇒1101,k=4)
位运算:x and ((1<<k)1)x and ((1<<k)−1)

取右数第k位
示例:(11011011,k=4)(1101101⇒1,k=4)
位运算:x>>(k1) and 1x>>(k−1) and 1

把末k位变成1
示例:(101001101111,k=4(101001⇒101111,k=4
位运算:x|((1<<k)1)x|((1<<k)−1)

末k位取反
示例:(101001100110,k=4(101001⇒100110,k=4
位运算:x xor ((1<<k)1)x xor ((1<<k)−1)

把右边连续的1变成0
示例:(100101111100100000)(100101111⇒100100000)
位运算:x and (x+1)x and (x+1)

把右起第一个0变成1
示例:(100101111100111111(100101111⇒100111111
位运算:x|(x+1)x|(x+1)

把右边连续的0变成1
示例:(1101100011011111)(11011000⇒11011111)
位运算:x|(x1)x|(x−1)

取右边连续的1
示例:(1001011111111)(100101111⇒1111)
位运算:(x xor (x+1))>>1(x xor (x+1))>>1

去掉右起第一个1的左边
示例:(1001010001000)(100101000⇒1000)
位运算:x and (x xor (x1))x and (x xor (x−1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值