餘數方法(最簡單,最易了解的算法):
但是如果為負數結果就很難預料:

修改為無符号類型則可以解決這個問題:
位操作方法(難度中):
通過移位操作和1作比較,将兩個數進行位運算,結果位1則計數一次反正不執行。
通過一個算法判斷程式執行次數推斷1的個數:(執行效率最高)
算法:n=n&(n-1):
輸入:13
//1101 n 13
&
//1100 n-1 12
//1100 指派給n 12
//1011 n-1 11
//1000 n 8
//0111 n-1 7
//0000
運算一次則讓最右邊少1,直到全為0為止就可以了。
注:本次程式在VS2019中測試。