005.对整型数据的各种处理
题目描述
定义一个整型处理类IntegerProcessing,该类有以下成员函数:
(1)返回整型参数的二进制表示中1的个数的成员函数;
(2)返回与整型参数的二进制模式互为镜像的整数的成员函数。
main函数已经写好,请根据main函数完成该类的设计:
int main(){
int n;
cin>>n;
cout<<IntegerProcessing::getNumberOfOne(n)<<endl;
cout<<IntegerProcessing::getBinMirror(n)<<endl;
return 0;
}
输入描述
输入整数n
输出描述
第一行输出整数n的二进制表示中1的个数
第二行输出整数n的二进制镜像数(十进制即可)
提示
你需要提交除了main函数之外的代码
样例输入
65538
样例输出
2
1073774592
允许最长运行时间
1000ms
允许使用最大内存
128KB
#include<iostream>
using namespace std;
class IntegerProcessing{
public:
static int getNumberOfOne(int n){
int count=0;
while(n){
if(n%2)
count++;
n=n/2;
}
return count;
}
static int getBinMirror(int n){
int i;
int count=0;
for (i = 0; i < 32; i++) {
if (i < 16) {
count |= ((n & (1 << i)) << 31 - 2 * i);
}
else {
count |= ((n & (1 << i)) >> 2 * i - 31);
}
}
return count;
}
};
int main(){
int n;
cin>>n;
cout<<IntegerProcessing::getNumberOfOne(n)<<endl;
cout<<IntegerProcessing::getBinMirror(n)<<endl;
return 0;
}
运行结果: