华为如何计算int型正整数在内存中存储时1的位数?
- 内容介绍
- 相关推荐
本文共计275个文字,预计阅读时间需要2分钟。
题目链接:https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9?tpId=37&tqId=21238&tPage=1&rp=1&ru=/ta/huawei/question-ranking
题目描述:输入一个整数,计算并输出该整数在内存中的表示。
题目链接
www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9?tpId=37&tqId=21238&tPage=1&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking
题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)输出描述:
这个数转换成2进制后,输出1的个数示例1
输入
复制
5输出
复制
2题解:
算出2的0至32次方,依次拿n减
#include <iostream>#include <cmath>
using namespace std;
int main(){
int n, ans = 0;
cin >> n;
long bisize[33];
for(int i = 0; i < 33; i++){
bisize[i] = pow(2, i);
}
int l = 32;
while(n > 0){
if(n >= bisize[l]){
n -= bisize[l];
ans++;
}
l--;
if(l < 0){
break;
}
}
cout << ans << endl;
return 0;
}
本文共计275个文字,预计阅读时间需要2分钟。
题目链接:https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9?tpId=37&tqId=21238&tPage=1&rp=1&ru=/ta/huawei/question-ranking
题目描述:输入一个整数,计算并输出该整数在内存中的表示。
题目链接
www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9?tpId=37&tqId=21238&tPage=1&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking
题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)输出描述:
这个数转换成2进制后,输出1的个数示例1
输入
复制
5输出
复制
2题解:
算出2的0至32次方,依次拿n减
#include <iostream>#include <cmath>
using namespace std;
int main(){
int n, ans = 0;
cin >> n;
long bisize[33];
for(int i = 0; i < 33; i++){
bisize[i] = pow(2, i);
}
int l = 32;
while(n > 0){
if(n >= bisize[l]){
n -= bisize[l];
ans++;
}
l--;
if(l < 0){
break;
}
}
cout << ans << endl;
return 0;
}

