如果一个数是2的阶次方数,则它的二进制数的首位一般是1,后面全为0.比如8:1000,64:1000000,如果将这个数减1后再作与&运算,则应该全为0,(x&(x-1)==0&&x!=0)则是2的阶次方数。
转载于:https://www.cnblogs.com/erfsfj-dbc/p/9925985.html
本文介绍了一种简单有效的方法来判断一个数是否为2的阶次方数。通过观察二进制数的特性,即首位为1且其余位为0的特点,结合位运算的技巧,可以快速验证一个数是否符合这一条件。具体操作是将该数与其减1后的数进行与运算,若结果全为0且原数不为0,则说明该数为2的阶次方数。
如果一个数是2的阶次方数,则它的二进制数的首位一般是1,后面全为0.比如8:1000,64:1000000,如果将这个数减1后再作与&运算,则应该全为0,(x&(x-1)==0&&x!=0)则是2的阶次方数。
转载于:https://www.cnblogs.com/erfsfj-dbc/p/9925985.html
1654

被折叠的 条评论
为什么被折叠?