剑指offer 算法 (位运算)
生活随笔
收集整理的這篇文章主要介紹了
剑指offer 算法 (位运算)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼表示。
class Solution { public:int NumberOf1(int n) {//方法一:(包含二進制負數不成立)n依次右移與1計數int cnt=0;while(n){if(n&1)cnt++;n=n>>1;}return cnt;//方法二:(包含二進制負數依舊成立)依次左移與n與的數 循環次數為系統int二進制的位數int cnt=0;unsigned int flag=1;while(flag){if(flag&n)cnt++;flag=flag<<1;}return cnt;//方法三:每次減一計數 與n清除置零位之后的1int cnt=0;while(n){cnt++;n=n&(n-1);}return cnt;} };《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的剑指offer 算法 (位运算)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指offer 算法(栈和队列 查找和
- 下一篇: 剑指offer 算法 (代码的完整性)