统计数n转换为二进制后包含1的个数

思路:

判断最低位是否为1,然后右移一位,这样次低位就位于最低位的位置,然后继续判断最低位

1 int numberOf1(unsigned int n){
2     int cnt = 0;
3     while(n){
4         if(n & 1)
5             cnt++;
6         n >>= 1;
7     }
8     return cnt;
9 }
1 int numberOf1(unsigned int n){
2     int cnt = 0;
3     while(n > 0){
4         n &= n - 1;
5         cnt++;
6     }
7     return cnt;
8 }
时间: 2024-10-12 13:41:07

统计数n转换为二进制后包含1的个数的相关文章

java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

1 package com.llh.demo; 2 3 import java.util.Scanner; 4 5 /** 6 * 7 * @author llh 8 * 9 */ 10 public class Test { 11 /* 12 * 将任意一个十进制数数字转换为二进制形式,并输出转换后的结果(使用数组存储) 13 */ 14 public static void main(String[] args) { 15 Scanner sc = new Scanner(System.in

C语言中字符串如何转换为二进制、八进制、十进制、十六进制

在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现 相关函数: atof, atoi, atol, strtod, strtoul表头文件: #include <stdlib.h>定义函数: long int strtol(const char *nptr, char **endptr, int base):函数的解释说明 这个函数会将参数nptr字符串根据参数base来转换成长整型数.参数base

十进制负数转换为二进制、八进制、十六进制的知识分享

这篇文章主要介绍了十进制负数转换为二进制.八进制.十六进制的知识分享,需要的朋友可以参考下 程序猿们或许对二进制都不陌生,二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.但是很多人都会将二进制转换成整数,但是如何用二进制表示负数呢?有的人会说,在二进制前面加个负数符合.而计算机只能认识0 和 1,又怎么去加个额外的负数符号呢?于是我们就需要用0和1来表示负数.如果想要弄懂这个,我们需要先了解什么是二进制原码. 原码是什么 原码(true form)是一种计算机中对数

将一个十进制转换为二进制,八进制,十六进制

package com.db2; /** * 将一个十进制转换为二进制,八进制,十六进制 * * @author denny * */ public class Demo2 { public static void main(String[] args) { toBin(6); toBin(-6); toOct(60); toOct(-60); toHex(60); toHex(-60); } // 转换2进制 public static void toBin(int num) { toTran

将数字转换为二进制

package com.db.eduk; import java.util.Scanner; public class changeTo2 {    public static void main(String args[])    {        int n;        Scanner scan = new Scanner(System.in);        System.out.println("请输入要转换为二进制的数字");        n = scan.nextIn

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult 导出EXCEL方法总结:MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可:优点:可设置丰富的EXCEL格式,缺点:需要依赖EXCEL组件,且EXCEL进程在服务器中无法及时关闭,以及服务器上会存留大量的不必要的XLS文件: 2.设置输出头为:application/ms-excel,再输出拼接的HTM

十进制转换为二进制的方法

方法1 java.lang包里integer类下有一个方法 toBinaryString public static String toBinaryString(int i) 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式. 如果参数为负,该无符号整数值为参数加上 232:否则等于该参数.将该值转换为二进制(基数 2)形式的无前导 0 的 ASCII 数字字符串.如果无符号数的大小为零,则用一个零字符 '0' ('\u0030') 表示它:否则,无符号数大小的表示形式中的第一

十进制转换为二进制序列,并输出1的个数,和序列的奇偶序列

★十进制转换为二进制序列,并输出1的个数,和序列的奇偶序列 #include<stdio.h> int main() { int m,i,x,y; char a[32];//int为4个字节长,占32个bit位 int count=0; printf("请输入一个数:\n"); scanf("%d", &m); for (i = 0; i < 32; i++) { if (m%2 == 1)         //统计序列中1的个数 { co

Java把科学计数法转换为字符串

/**  * 把科学计数法转换为字符串  * 1.64607507E8(转化为164607507).1.6.0.0.0  * @param str  * @return  */ private static String number2PlainString(String str){ BigDecimal bd = new BigDecimal(str); return bd.toPlainString(); }