去掉最后一位:
示例:(101101⇒10110)
位运算:x>>1
在最后加一个0
示例:(101101⇒1011010)
位运算:x<<1
在最后加一个1
示例:(101101⇒1011011)
位运算:(x<<1)+1
把最后一位变成1
示例:(101100⇒101101)
位运算:x|1
把最后一位变成0
示例:101101⇒101100
位运算:(x|1)−1
最后一位取反
示例:(101101⇒101100)
位运算:x1
把右数第k位变成1
示例:(101001⇒101101,k=3)
位运算:x|(1<<(k−1))
把右数第k位变成0
示例:(101101⇒101001,k=3)
位运算:x and (1<<(k−1))
右数第k位取反
示例:(101001⇒101101,k=3)
位运算:x(xor(1<<(k−1)))
取整数n在二进制表示下的第k位
位运算:(n>>k) and 1
取整数n在二进制表示下的后k位
位运算:n and ((1<<k)−1)
取末k位
示例:(1101101⇒1101,k=4)
位运算:x and ((1<<k)−1)
取右数第k位
示例:(1101101⇒1,k=4)
位运算:x>>(k−1) and 1
把末k位变成1
示例:(101001⇒101111,k=4
位运算:x|((1<<k)−1)
末k位取反
示例:(101001⇒100110,k=4
位运算:x xor ((1<<k)−1)
把右边连续的1变成0
示例:(100101111⇒100100000)
位运算:x and (x+1)
把右起第一个0变成1
示例:(100101111⇒100111111
位运算:x|(x+1)
把右边连续的0变成1
示例:(11011000⇒11011111)
位运算:x|(x−1)
取右边连续的1
示例:(100101111⇒1111)
位运算:(x xor (x+1))>>1
去掉右起第一个1的左边
示例:(100101000⇒1000)
位运算:x and (x xor (x−1))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了