剑指offer 10. 二进制中1的个数
2017-05-15 15:50
253 查看
// 题目:输入一个数,判断这个数中1的个数 // 解法1:n与(n-1)进行与操作就会使n的最右边一个1变成0 public class Main { public static void main(String[] args) { System.out.println(countN(0)); } public s 4000 tatic int countN(int num){ int result = 0; while(num!=0){ num = num&(num-1); //n与(n-1)进行与操作就会使n的最右边一个1变成0 result++; } return result; } } //解法2:使用一个1与每一位进行与运算,每出现一次结果为1,出现1的次数就加一 public class Main { public static void main(String[] args) { System.out.println(countN(-3)); } public static int countN(int num){ int temp = 1; int result = 0; while(temp != 0){ //当temp的位数超过32位再左移时,temp就是变为0 if((num & temp) != 0){ result++; } temp = temp<<1; } return result; } }
相关文章推荐
- 剑指Offer10:二进制中1的个数
- 【剑指offer】面试题十:二进制中 1 的个数
- 剑指offer--二进制中1的个数
- 剑指offer--二进制中1的个数
- 剑指offer题解 二进制中1的个数
- 剑指offer:二进制中1的个数
- 【剑指offer】二进制中1的个数
- 剑指offer——二进制中1的个数
- 【剑指offer】题10:二进制中1的个数
- 【剑指offer】2.4.3位运算——面试题10:二进制中1的个数
- 【剑指offer】面试题15:二进制中1的个数
- 剑指offer 二进制中1的个数
- 剑指offer 二进制中1的个数
- 剑指offer:二进制中1的个数
- 剑指offer-二进制中1的个数
- 【剑指offer】二进制中1的个数
- 剑指offer: 二进制中1的个数(位运算)
- 剑指offer中,求输入整数的二进制形式中1的个数(Java代码)
- 剑指offer_面试题10_二进制中1的个数(位运算)
- 剑指offer 编程题(10):二进制中1和0的个数