输入一个整数、输出该数二进制表示中1的个数。如输入32岁的输出1。
代码实现:
与运算
<人力资源/># define _CRT_SECURE_NO_WARNINGS 1 # includeusing namespace 性传播疾病; int FindOneNumber (unsigned int  num) { ,,,int numberofOne =, 0; ,,,while (num) ,,,{ ,,,,,,,num =, num ,, (num 作用;1); ,,,,,,,numberofOne + +; ,,,} ,,,return numberofOne; } void 测试() { ,,,int num =, 32; ,,,cout<& lt; FindOneNumber (num) & lt; & lt; endl; } int main () { ,,,()测试; ,,,系统(“暂停”); ,,,return 0; }
模除法
# define _CRT_SECURE_NO_WARNINGS 1 # includeusing namespace 性传播疾病; int FindOneNumber (unsigned int  num) { ,,,int numberofOne =, 0; ,,,while (num) ,,,{ ,,,,,,,如果(num %, 2,==, 1),,,,,,,, ,,,,,,,numberofOne + +; ,,,,,,,num /=, 2; ,,,} ,,,return numberofOne; } void 测试() { ,,,int num =, 32; ,,,cout & lt; & lt;, FindOneNumber (num), & lt; & lt;, endl; } int main () { ,,,()测试; ,,,系统(“暂停”); ,,,return 0; }
移位
# define _CRT_SECURE_NO_WARNINGS 1 # includeusing namespace 性传播疾病; int FindOneNumber (unsigned int  num) { ,,,int numberofOne =, 0; ,,,while (num) ,,,{ ,,,,,,,if (num ,, 1) ,,,,,,,,,,,numberofOne + +; ,,,,,,,num =, num 在祝辞,1; ,,,} ,,,return numberofOne; } void 测试() { ,,,int num =, 32; ,,,cout & lt; & lt;, FindOneNumber (num), & lt; & lt;, endl; } int main () { ,,,()测试; ,,,系统(“暂停”); ,,,return 0; }