求乙個整數儲存在記憶體中的二進位制中的1的個數
方法1.利用數字遍歷的方式(相除和取模/n,
%n)#include
#include
void
onenumber
(int n)
printf
("%d\n"
, count);}
intmain()
方法1只能確定正整數中二進位制中1的個數
執行結果:
方法2.利用按位操作來實現
#include
intmain()
}printf
("%d\n"
, count)
;system
("pause");
return0;
}
執行結果:
方法3
(效率最高, 其運算次數與輸入n的大小無關,只與n中1的個數有關)
//n & n - 1能清除n最右邊的1
#include
#include
intmain()
printf
("%d\n"
, count)
;system
("pause");
return0;
}
執行結果: C語言之求乙個整數儲存在記憶體中的二進位制中1的個數
求乙個整數儲存在記憶體中的二進位制中1的個數 三種方法 define crt secure no warnings 1 include intmain printf 二進位制中1的個數 d n count return0 define crt secure no warnings 1 include...
四種方法求乙個整數儲存在記憶體中的二進位制中1的個數
1 int num int n n n 2 return count int main 這個 是存在一定問題的。倘若要求 1儲存在記憶體中二進位制1的個數,用該段 列印出來的結果為0,但我們都知道 1在記憶體中是以補碼的形式儲存的,整型的話就有32個1。若將nt num int n 改為int nu...
求逆轉乙個整數的二進位制表示
解法一 這個容易理解。cpp view plain copy 解法一 define unsigned bits count 32 unsigned int bitrev3 unsigned intinput 我的格式,先不考慮符號問題 int reverse int n return ret 解法二...