请自行参考位运算相关(一)——位运算学习笔记
(1)去掉末位——\(x>>1\)
(2)增加末位——增加\(0\):\(x<<1\),增加\(1\):\(x<<1|1\)
(3)改变末位——改成\(0\):\((x|1)-1\),改成\(1\):\(x|1\),取反:\(x\)^\(1\)
(1)改成\(0\):\(x\&~(1<<k-1)\)
(2)改成\(1\):\(x|(1<<k-1)\)
(3)取反:\(x\)^\((1<<k-1)\)
(4)取右数第\(k\)位:\((x>>k-1)\&1\)
(1)改成\(1\):\(x|((1<<k)-1)\)
(2)取反:\(x\)^\(((1<<k)-1)\)
(3)取末\(k\)位:\(x\&((1<<k)-1)\)
原文:https://www.cnblogs.com/chenxiaoran666/p/bit_transformation.html