说一说,求一个正整数的二进制中0的个数
生活随笔
收集整理的這篇文章主要介紹了
说一说,求一个正整数的二进制中0的个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
昨天突然看到一個算法題:一個正整數a的二進制中0的個數;
話說這是個老題了,直觀的算法就每次右移一位,直到0為止;代碼就省略了;
仔細想想有更好的方案么?
就是這個題可以轉換成一個正整數~a的二進制中1的個數; 求1的個數這個貌似就很熟悉了吧;
int num = 0;
b = ~a;
while(b){
? ? num++;
b = b & (b-1);
}
是不是容易了許多呢
另外像java和python這種沒有unsigned的語言要自己去轉
b = ~a & 0x0ffff
轉載于:https://www.cnblogs.com/sparkling-ly/p/5569115.html
總結
以上是生活随笔為你收集整理的说一说,求一个正整数的二进制中0的个数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: outdated: 3.Adding C
- 下一篇: IE haslayout的理解与bug修