习题19_4

阅读材料:
https://blog.csdn.net/weixin_41183791/article/details/84886700

 1.去掉最后一位       x>>1
 2.在最后加一个0      x<<1
 3.在最后加一个1      (x<<1)+1
 4.把最后一位变成1    x|1
 5.把最后一位变成0    (x|1)-1
 6.最后一位取反       x^1
 7.把右数第k位变成1   x|(1<<(k-1))
 8.把右数第k位变成0   x&~(1<<(k-1))
 9.右数第k位取反      x^(1<<(k-1))
 10.取末三位         x&7
 11.取第k位          x&(1<<(k-1))
 12.取右数第k位       x>>(k-1)&1         //右移k位,再与1一下,就知道这位是1是0了
 13.把右数第k位变成1   x|(1<<k-1)
 14.末k位取反         x^(1<<k-1)
 15.把右边连续的1变成0    x&(x+1)
 16.把右起第一个0变成1    x|(x+1)
 17.把右边连续的0变成1    1|(x-1)
 18.取右边连续的1       (x^(x+1))>>1
 19.去掉右起第一个1的左边  x&(x^(x-1))

 习题答案:
 1、奇偶性判断
 a & 1 =1 奇数, a & 1 =0 偶数

 2、右边数第k位变成0      x&~(1<<(k-1))

 3、从右边数末k位取反      x^(1<<k-1)

 4、判断从右边数第k位是1还是0  x>>(k-1)&1

 5、将从右边数的第一个0变成1  x|(x+1)
posted @   糖豆爸爸  阅读(25)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
Live2D
点击右上角即可分享
微信分享提示