位运算的常见操作
常见运算符
&:按位与。
|:按位或。
~:按位非。
^:按位异或。(相同为0,否则为1)
<<:左位移运算符。
>>:右位移运算符。
>>>:无符号右移运算符。
常见操作
1,判断x是奇数还是偶数:(x&1)==0
2,x乘以一个2的n次方的数:x<<n
3,x除以一个2的n次方的数:x>>n
4,消去x最后一位的1:x&(x-1)
5,求x的相反数: ~(x-1)或者~x+1
6,x的异或操作:~x = -x-1
7,把x从右边数第n位变1:x|(1<<(n-1))(n从1开始)
8,把x从右边数第n位变0:x&(~(1<<(n-1)))(n从1开始)
9,取x最后n位的值:x&((1<<n)-1)
10,取x前n位的值,后面的全部置为0:x & (~((1 << (32 - n)) - 1))
11,只保留x右边第一个1,其他的全部置为0:x & (-x)
或x & ~(x - 1)
12,判断x的第n位是偶数还是奇数:(x & (1 << (n - 1))) == 0
13,求x的绝对值:(n ^ (n >> 31)) - (n >> 31)
或(x >> 31) == 0 ? x : (~x + 1)
或(x + (x >> 31)) ^ (x >> 31)
14,求两个数的最大数:(x & ((y - x) >> 31)) | (y & (~(y - x) >> 31))
15,返回x的符号:(i >> 31) | (-i >>> 31)(正数为1,负数为-1)
16,两数相加:(x | y) + (x & y)
或(x ^ y) + ((x & y) << 1)
17,两数相减:(x & ~y) - (~x & y)
18,求两数的平均数:(x & y) + ((x ^ y) >> 1)
或(x + y) >> 1
19,判断一个数是不是2的次幂:(x != 0) && (x & (x - 1)) == 0
20,x对2的n次方求余:x & (2^n - 1)(这里的^是幂的次方)
21,判断x和y的符号是否相同:(a ^ b) >= 0
22,if(x == a) x = b; if(x == b) x = a:用异或运算符:x = a ^ b ^ x。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix