寫乙個函式返回引數二進位制中 1 的個數

2021-07-24 11:33:24 字數 791 閱讀 2928

方法一:注意:

(1)這種方法是採取按位於,即讓索要判斷的數和1 與,可以判斷最後一位是0還是1,然後每判斷一次

向右移動一位再判斷下一位,以此類推迴圈32次,即可知道這個數的每一位情況

#include int main ()

num=num>>1; //沒判斷完一位,這個數向右移動1位,再判斷下一位

} printf("\n");

printf("count=%d",count);

return 0;

方法二: 注意:

(1)這種方法本質上和下一種是一樣的,只是這種表面看起來是二進位制數向右移動0,1,2...31位,這

個只是相對於這個數原來的樣子,其實每次也是一位一位判斷的,這個和另一種一定要加以區分

#include int main ()

} printf("\n");

printf("count=%d",count);

return 0;

}

方法三:(最優化)

這種方法非常簡便,根據乙個整數每次和

比自己小一的數按位與,結果會

使得原來的這個整數的二進位制位少乙個1這個特點,可以設定乙個迴圈,直到這個數到0為止,每

迴圈一次,count自增1,說明記錄乙個1

#include int main ()

printf("count=%d",count);

return 0;

}

寫乙個函式返回引數二進位制中1的個數

寫乙個函式返回引數二進位制中1的個數 分析 1 輸入乙個數 2 判斷它是否為0。3 如果不為0,就對它進行模2取餘,模2的過程就相當於把這個數向右移除了一位,如果餘數為1,則證明移除的這一位為1,就將其記錄下來。如果餘數為0,就證明移除的這一位為0,就不記錄。4 經過第3步以後,對這個數進行除2取整...

寫乙個函式返回引數二進位制中1的個數

寫乙個函式返回引數二進位制中1的個數 15 00001111 方法一 include include int main printf d n count system pause return0 此方法不能計算 0 的情況 2.方法二 include include int main printf ...

寫乙個函式返回引數二進位制中 1 的個數

define crt secure no warnings include int main printf count d n count return 0 上面這段 只能統計正數的二進位制中的1的個數。存在一定的缺陷請看 如果想讓上面這個方法也可以求的負數中二進位制中1的個數 請看下面 這段 呢就...