剑指offer——二进制中1的个数

来源:互联网 发布:万网域名交易 编辑:程序博客网 时间:2024/06/06 22:46
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
<strong><span style="font-size:18px;">#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>using namespace std;int OneCount(unsigned int num){size_t count = 0;int ret = 0;for (int i = 0;i < 32;i++){ret = num % 2;if (ret == 1){count++;}num = num>>1;}return count;}void test(){//输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 unsigned int num = 0;cin>>num;size_t count = OneCount(num);cout<<num<<endl<<count<<endl;}int main(){test();system("pause");return 0;}</span></strong>

1 0