位运算:二进制中1的个数

简介: 题目:输入一个 32 位整数,输出该数二进制表示中 1 的个数注意:负数在计算机中用其绝对值的补码来表示。数据范围:−100≤ 输入整数 ≤100样例1:输入:9输出:2解释:9的二进制表示是1001,一共有2个1。样例2:输入:-2输出:31解释:-2在计算机里会被表示成11111111111111111111111111111110,一共有31个1。

题目:

输入一个 32 位整数,输出该数二进制表示中 1 的个数
注意:
负数在计算机中用其绝对值的补码来表示。
数据范围:
−100≤ 输入整数 ≤100
样例1:
输入:9
输出:2
解释:9的二进制表示是1001,一共有2个1。
样例2:
输入:-2
输出:31
解释:-2在计算机里会被表示成11111111111111111111111111111110,
一共有31个1。

分析:

这个题呢,只要是学过位运算的应该都会觉得的很简单,但是碰到负数就傻眼了,正如题目中所说,负数在 
计算机内用绝对值的补码来表示。我也不是很懂下面写的。。。记住就行了(狗头)

源码:

class Solution {
public:
int NumberOf1(int _n) {
unsigned n=_n;
int a=0;
while(n) a+=n&1 , n>>=1;
return a;
    } 
};
目录
相关文章
|
4月前
二进制中1的个数
二进制中1的个数
18 0
|
4天前
|
存储 算法
【三种方法】求一个整数存储在内存中二进制中的1的个数附两道课外练习题
【三种方法】求一个整数存储在内存中二进制中的1的个数附两道课外练习题
7 0
|
15天前
|
C++
Acwing.26 二进制中1的个数
Acwing.26 二进制中1的个数
|
2月前
|
C语言
【C语言】求一个整数的二进制序列中1的个数的三种方法
【C语言】求一个整数的二进制序列中1的个数的三种方法
14 0
|
4月前
|
C语言
[C语言][题]获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
[C语言][题]获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
25 0
|
4月前
|
算法 Python
计算32位二进制整数中1的个数(包括负数补码)
计算32位二进制整数中1的个数(包括负数补码)
29 0
|
9月前
|
存储 算法 C语言
C语言/计算整数二进制位中的1的个数
C语言/计算整数二进制位中的1的个数
|
11月前
剑指offer_位运算---二进制中1的个数
剑指offer_位运算---二进制中1的个数
34 0
|
12月前
|
C语言
【C语言】输入一个整数,输出该数二进制表示中1的个数,其中负数用补码表示
输入一个整数,输出该数二进制表示中1的个数,其中负数用补码表示
【剑指offer】二进制中1的个数&&2的幂
【剑指offer】二进制中1的个数&&2的幂
【剑指offer】二进制中1的个数&&2的幂