计算一个整数,转换成二进制,里面有多少个1

解法1:右移 & 1

int numberof1(int i)
{
int count = 0;
while(n)
{
if (n & 1)
count ++;
n = n >> 1;
}
return count;
}

缺陷是:
当该数为负数,例如0x8000000,右移不是得到0x40000000,而是0xc0000000,因为该数本身是一个负数,所以右移之后仍要保持是负数的本质。

解法2:数不右移,而是用1左移与该数进行相 &

int numberof2(int n)
{
int count = 0;
unsigned int flag = 1;
while (flag)
{
if (n & flag)
count ++;
flag = flag << 1;
}
return count;
}

解法3:这是一种比较骚的操作,方法如下:把一个整数减去1,再和原整数做与运算,会把该数最右边的一个1变成0,那么一个整数的二进制中有多少个1,就可以进行多少这样的操作
1100 - 1 = 1011
1100
  & 1011
——————
1000

1000 - 1 = 0111
1000
  & 0111
——————
0000

int numberof3(int n)
{
int count = 0;
while(n)
{
++ count;
n = n & (n - 1);
}
return count;
}

作者:为了这一刻-我也有拼命练习
来源:CSDN
原文:https://blog.csdn.net/shi_shi08/article/details/81047658
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://blog.51cto.com/14233363/2378343

计算十进制转为二进制后1的个数相关推荐

  1. c语言x在二进制表示下1的个数,算法:计算十进制数字在二进制表示1的个数,...

    算法:计算十进制数字在二进制表示1的个数, 题目一 计算十进制数字在二进制表示 1 的个数 举个例子: 十进制数字为 1 时,它的二进制表示是 001,二进制表示 1 的个数为 1: 十进制数字为 2 ...

  2. python十进制转换其他进制直到输入q结束,python二进制转换,python将十进制转为二进制,题目描述:输入一个整...

    python二进制转换,python将十进制转为二进制,题目描述:输入一个整 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 分析: python没有unsignedin ...

  3. 十进制转为二进制的JAVA代码

    在网上搜索了十进制转为二进制的JAVA代码,没有满意的,自己写了一个,与大家一起分享. /**   * 十进制转化为二进制的内容堆栈,堆栈进入的顺序是由低到高的   * @param dec dec为 ...

  4. 十进制转为二进制的两种方法

    十进制(以十为基础进位)数系的每一个位值有十个可能的值(0.1.2.3.4.5.6.7.8.9).相反二进制(以二为基数进位)数系只有两个可能的值,即0和1.[1] 二进制系统是电子计算机的基本语言, ...

  5. 用位运算将十进制转为二进制python_python 十进制与二进制以及位运算

    在python2.6以上的版本中自带了将十进制转化为二进制的函数bin(). 看一下bin.__doc__怎么说的. >>>print bin.__doc__ bin(number) ...

  6. 快速计算十进制转二进制的方式

    在计算机中一切数据都是用0和1来表示的,我们常规计算二进制的方式是把某个数字除以2能除尽则是0,除不尽则取1然后接着除,最后将取出的0和1向前排序就是最终的二进制数.这种方式相当费时费力还容易出错,其 ...

  7. 把十进制转为二进制到16进制

    分析:以10进制转为2进制为例,每次除以2,取余,然后继续除,最后倒序取余数.我们这里的任意进制转换也是借用此思想,具体的操作见代码 public static String parse(int n, ...

  8. C语言算法:十进制转为二进制

    #include<stdio.h> int main() {int b,i,c=0,a[30];scanf("%d",&b);while(b!=0){i=b%2 ...

  9. python将十进制转为二进制_如何用Python将十进制数字转为二进制,以及将二进制转为十六进制?...

    匿名用户 1级 2017-11-28 回答 #首先说明一点,python有现成的函数可以干这个,只不过这个位数不会按照你想要的位数输出而已 #这些函数是 bin(), hex(), oct(),这些函 ...

  10. C/C++将十进制数转为二进制并输出

    头文件用了C++的,也可以加上#include <stdio.h>,可以用C语言的输入输出语句. #include <iostream>//将十进制转为二进制,并输出其中1的个 ...

最新文章

  1. html提交表单原理,HTML表单、HTTP Get与Post杂谈
  2. 列表对象转数组 微信小程序_微信小程序——无限递归的层次列表
  3. MySQL事务以及加锁机制
  4. 自动驾驶路径轨迹规划(三阶曲线spline)
  5. Redis与Memcached的对比
  6. 虚拟环境virtualenv
  7. vue中npm run dev运行项目不能自动打开浏览器! 以及 webstorm跑vue项目jshint一直提示错误问题的解决方法!...
  8. 一台电子计算机埃尼阿克的介绍,世界之最——第一台电子计算机
  9. 随机数和随机数种子——学不会找我
  10. 基于51单片机的温度检测调节系统设计
  11. 惠普打印机,打印状态:需要注意,打印时显示:需要用户干
  12. 快速删除excel中的空行
  13. Luogu P3110 [USACO14DEC]驮运Piggy Back
  14. visio的替代工具 - draw.io
  15. 打印显示打印机未安装
  16. mumu按键精灵_什么安卓模拟器可实现操作录制?MuMu模拟器成为你的按键精灵_MuMu安卓模拟器/MuMu手游助手...
  17. 如何控制项目边界,与客户项目负责人结成同盟军
  18. 小白也能看懂的seaborn入门示例
  19. html只选择年份,原生jQuery实现只显示年份下拉框
  20. 使用Google Analytics统计用户留存率

热门文章

  1. 使用Eclipse远程调试
  2. poj 1833 排列
  3. apache无权限访问(You don't have permission to access /docs/index.html on this server)
  4. 深度学习pytorch基础入门教程(1小时)-神经网络
  5. python3及wxpythonGUI多线程防假死与线程消息传递消息(最新)
  6. 规则绝对公平时,社会财富的流向谁?
  7. 智能优化算法应用:基于麻雀搜索算法PID参数优化 - 附代码
  8. 智能优化算法:乌鸦搜索算法-附代码
  9. 透视形变(perspective distortion)
  10. 【ArcGIS|空间分析】3D可视性分析(全国大学生GIS技能大赛试题)