如何计算一个整数(包括负数)二进制表示中1的个数?

2026-04-16 20:004阅读0评论SEO基础
  • 内容介绍
  • 相关推荐

本文共计351个文字,预计阅读时间需要2分钟。

如何计算一个整数(包括负数)二进制表示中1的个数?

这个问题主要思路是打破常规思维,我们可以看到10进制和二进制的数。当我们把数转换成二进制时,会发现它是用了左移的操作。

这道题的思路主要是打破自己的惯有的思维,其实我们可以看出10进制的数,我们完全可以当做二进制来使用。

然后在转换成为二进制的时候,我们可以看到他是用了一个左移的操作,

这个操作比我们传统的利用对二连除的方法要好的。然后我们用c++的方法进行求解得到的答案就是

class Solution {
public:
int NumberOf1(int n) {
int mark=0;
int index = 1;
while(index!=0){
if((n&index)!=0)
mark++;
index=index<<1;
}
return mark;
}
};

通过java写出的代码为

思路为:先将数字转换为一个string类型的字符串,然后再将这个字符串转换为数组。然后

对这个数字转换成的数组进行遍历。看里面有的1的个数,就可以了。

阅读全文

本文共计351个文字,预计阅读时间需要2分钟。

如何计算一个整数(包括负数)二进制表示中1的个数?

这个问题主要思路是打破常规思维,我们可以看到10进制和二进制的数。当我们把数转换成二进制时,会发现它是用了左移的操作。

这道题的思路主要是打破自己的惯有的思维,其实我们可以看出10进制的数,我们完全可以当做二进制来使用。

然后在转换成为二进制的时候,我们可以看到他是用了一个左移的操作,

这个操作比我们传统的利用对二连除的方法要好的。然后我们用c++的方法进行求解得到的答案就是

class Solution {
public:
int NumberOf1(int n) {
int mark=0;
int index = 1;
while(index!=0){
if((n&index)!=0)
mark++;
index=index<<1;
}
return mark;
}
};

通过java写出的代码为

思路为:先将数字转换为一个string类型的字符串,然后再将这个字符串转换为数组。然后

对这个数字转换成的数组进行遍历。看里面有的1的个数,就可以了。

阅读全文