[{"data":1,"prerenderedAt":97},["ShallowReactive",2],{"page-/learnpost/1":3},{"id":4,"title":5,"body":6,"description":77,"extension":87,"meta":88,"navigation":93,"path":90,"seo":94,"stem":95,"__hash__":96},"content/learnpost/1.md","位运算",{"type":7,"value":8,"toc":76},"minimark",[9,14,19,23,28,32,35,39,42,45,48,52,55,59,62,65],[10,11,13],"h1",{"id":12},"一基本运算符","一.基本运算符",[15,16,18],"h3",{"id":17},"_1按位与","1.按位与(&)",[20,21,22],"p",{},"按位都为1结果为1，否则为0。",[24,25,27],"h4",{"id":26},"n-n-1消除最低位1","n & (n-1)消除最低位1",[15,29,31],{"id":30},"_2按位或","2.按位或(|)",[20,33,34],{},"按位有一个为1结果为1，都为0结果为0。",[15,36,38],{"id":37},"_3按位异或","3.按位异或(^)",[20,40,41],{},"按位相同为0，不同为1。",[24,43,44],{"id":44},"重要性质",[20,46,47],{},"a ^ a = 0;\na ^ 0 = a;\n当a & b = 0 时a+b= a ^ b",[15,49,51],{"id":50},"_4按位取反","4.按位取反(~)",[20,53,54],{},"二进制0变1,1变0。",[15,56,58],{"id":57},"_5左移右移","5.左移(\u003C\u003C)右移(>>)",[20,60,61],{},"左移低位补0(相当于乘以2^k)，右移高位补0(相当于除以2^k)。",[15,63,64],{"id":64},"补充技巧",[20,66,67,68,72,73],{},"在此引入十六进制数0xFFF(即12位每位都为1对应的0xFFFF是16位每位为1)\n由此可以展开一些操作比如\n",[69,70],"img",{"alt":5,"src":71},"../../images/md/%E4%BD%8D%E8%BF%90%E7%AE%971.png","\n代码如下\n",[69,74],{"alt":5,"src":75},"../../images/md/%E4%BD%8D%E8%BF%90%E7%AE%972.png",{"title":77,"searchDepth":78,"depth":78,"links":79},"",2,[80,82,83,84,85,86],{"id":17,"depth":81,"text":18},3,{"id":30,"depth":81,"text":31},{"id":37,"depth":81,"text":38},{"id":50,"depth":81,"text":51},{"id":57,"depth":81,"text":58},{"id":64,"depth":81,"text":64},"md",{"content":89,"link":90,"image":91,"date":92},"位运算学习笔记。","/learnpost/1","/images/post2.png","2026-03-19",true,{"title":5,"description":77},"learnpost/1","wUuRsiHYcOEso0iUvsWNLaW4TZsO2Ubzvs9iYDEK-Sc",1781447552117]