【华为OJ】求int型数据在内存中存储时1的个数
2015-06-16 20:22
134 查看
问题描述: 输入一个int型数据,计算出该int型数据在内存中存储时1的个数。
知识点:字符串,查找
输入:输入一个整数(int型)
输出:这个数转换成2进制后,输出1的个数。
样例输入:5
样例输出:2
问题分析:数据以其补码形式存储,整数的补码就是本身,复数的补码是其反码+1;(
-10 原码是 10001010 取反得 11110101 加一得 11110110)
所以,问题的关键的是统计1的个数,可以用&0x001来确定最后一位是不是1,同时用移位符>>1,来判断接下来的。
代码:
知识点:字符串,查找
输入:输入一个整数(int型)
输出:这个数转换成2进制后,输出1的个数。
样例输入:5
样例输出:2
问题分析:数据以其补码形式存储,整数的补码就是本身,复数的补码是其反码+1;(
-10 原码是 10001010 取反得 11110101 加一得 11110110)
所以,问题的关键的是统计1的个数,可以用&0x001来确定最后一位是不是1,同时用移位符>>1,来判断接下来的。
代码:
#include <iostream> using namespace std; int main() { int x; cin>>x; int num=0; if(x>=0) { while(x) { num=num+(x&0x0001); x=x>>1; } cout<<num<<endl; } else { x=~x; while(x) { num=num+(x&0x0001); x=x>>1; } cout<<32-num<<endl; } return 0; }
相关文章推荐
- 多线程例子
- vs2010高亮
- x210v3开发板u-boot-2012.10移植之十一---添加DM9000网卡支持
- GukiZ and Binary Operations(矩阵+二进制)
- 45Exchange 2010升级到Exchange 2013-迁移邮箱
- Android中activity、service、broadcast、单例模式http请求的综合使用
- VS2013默认打开HTML文件没有设计视图的解决办法
- ASP.NET MVC Web API 学习笔记---第一个Web API程序---近来很多大型的平台都公开了Web API
- 马上毕业的时光,谁的人生不留遗憾?
- leetcode[70]:Climbing Stairs
- android开发步步为营之63:webview常用用法
- linux 下硬盘序号
- Qt学习笔记002 2015/6/16
- log4cpp的安装
- 逻辑架构和物理架构
- Direct-X学习笔记--光照&材质&DX自带几何体绘制
- 7-2
- android 电子词典
- Android系统Intent,系统Action调用大全
- 常见邮件服务器(接收服务器和发送邮件服务器)地址