如何判断一个整型数的二级制数中1的位数?如何将整型数对2^n求余?(位运算)

以下问题都是通过位运算的方式解决:

Q1:a&(a-1)表达式有什么作用?
A1:a-1会将a的最低位的1变为0,后几位全变为1,之后与a进行&位运算,可以看做将a的最低位1变为0。

Q2:如何判断一个整型数的二级制数中1的位数?
A2:a = a&(a-1),直到a = 0。中间记录次数。

Q3:如何判断一个整型数a是2的正整数次幂?
A3:参考Q2。其二级制数为1的位数等于1。

Q4:如何将一个整型数a对2^n求余?
A4:a&(2^n-1)

发布了28 篇原创文章 · 获赞 11 · 访问量 1538

猜你喜欢

转载自blog.csdn.net/weixin_42881755/article/details/100043489