求int型数据在内存中存储时1的个数
2016-03-26 11:06
211 查看
题目描述:
输入一个int型数据,计算出该int型数据在内存中存储时1的个数。
知识点: 字符串,查找
输入: 输入一个整数(int类型)
输出: 该数转换成2进制后1的个数
样例输入: 5
样例输出: 2
思路:
该题要考虑全面,正整数、0、负整数三种情况。
因为0、正整数在内存中存储方式简单,但对于负整数,其存储方式为补码,求解起来比较困难。
这种思路其实已经把自己困住了。
好的思路是,对于输入的整型数,在内存中的形式已经形成。只需要对每一位进行判断即可。
其中,算术移位运算符是<<和>>,对于最高/低位做补0操作。
代码:
输入一个int型数据,计算出该int型数据在内存中存储时1的个数。
知识点: 字符串,查找
输入: 输入一个整数(int类型)
输出: 该数转换成2进制后1的个数
样例输入: 5
样例输出: 2
思路:
该题要考虑全面,正整数、0、负整数三种情况。
因为0、正整数在内存中存储方式简单,但对于负整数,其存储方式为补码,求解起来比较困难。
这种思路其实已经把自己困住了。
好的思路是,对于输入的整型数,在内存中的形式已经形成。只需要对每一位进行判断即可。
其中,算术移位运算符是<<和>>,对于最高/低位做补0操作。
代码:
#include <iostream> using namespace std; int main() { int num, count = 0; cin >> num; for (int i = 0; i < 32; i++) { if (num & 1) count++; num = num >> 1; // num >>= 1; } cout << count; return 0; }
得分 | 运行时间 | 内存 | 复杂度 | 最大嵌套深度 |
98(100) | 16ms | 2072KB | 3 | 3 |
相关文章推荐
- POJ2135 Farm Tour 无向图最小费用流
- Windows下启动,关闭Nginx命令
- 小学四则运算3
- 有关SAP中的批次管理
- find 命令查找文件时忽略某些目录
- 第五周项目1:三角形类雏形(3)
- tcp并发服务端
- ODBC具体使用
- 找出出现次数超过数组一半元素的数
- 转载http://www.yinwang.org/blog-cn/2013/03/07/linux-windows-mac
- 提高情商的方法
- 系统负载很高但cpu很空闲
- String、StringBuffer和StringBuilder使用和区别
- linux源码Makefile的详细分析
- iOS开发 - 卡片堆叠效果
- MotionEvent中getX()和getRawX()的区别
- 【USACO题库】2.4.3 Cow Tours牛的旅行
- 将备份中的数据插入到数据库中的具体步骤
- 二代CMS旅游网站系统V1使用手册(二):同业账户及获取授权
- 构建之法阅读笔记02